Mar
15
2016

XML Publisher java.io.UTFDataFormatException: Invalid UTF8 encoding Hatası

Merhaba,

Bu yazımda rdf ile üretilen xml dosyasının template aracılığı ile istenilen PDF dosyasına dönüştürülmesi sırasında alınan hatanın nedeni ve nasıl düzeltileleceğini açıklayacağım.

XML publisher aracılığı ile template olarak tasarkanan (.rtf) uzantılı dosya aracılığı ile rapor üretilir. Bu işlemi yapan oracle.apps.xdo.template.FOProcessor apisidir.

Bu işlemin yapılırken ilgili java apisi xml li ve rtf parse ederek rdf in ürettiği xml li template dizayınına göre raporda parametrik olarak verilen output tipine göre convert ederek output dosyayı oluşturur.

XML publisherin ürettiği log lar OPP (Output Post Processor) loglarından erişilir.

 
SELECT fcpp.concurrent_request_id req_id, fcp.node_name, fcp.logfile_name
FROM fnd_conc_pp_actions fcpp, fnd_concurrent_processes fcp
WHERE fcpp.processor_id = fcp.concurrent_process_id
AND fcpp.action_type = 6
AND fcpp.concurrent_request_id = &&request_id

Yukarıdaki sorgu ile talep bazılı üretilen OPP log dosyaları görüntülenir.

İşlemci eğer XML dosyasının xml in karakter seti nedeniyle ayrıştıramazsa

 
Caused BY: JAVA.io.UTFDataFormatException: Invalid UTF8 encoding.
	AT oracle.xdo.parser.v2.XMLUTF8Reader.checkUTF8Byte(XMLUTF8Reader.JAVA:160)
	AT oracle.xdo.parser.v2.XMLUTF8Reader.readUTF8Char(XMLUTF8Reader.JAVA:175)
	AT oracle.xdo.parser.v2.XMLUTF8Reader.fillBuffer(XMLUTF8Reader.JAVA:120)
	AT oracle.xdo.parser.v2.XMLByteReader.saveBuffer(XMLByteReader.JAVA:450)
	AT oracle.xdo.parser.v2.XMLReader.fillBuffer(XMLReader.JAVA:2229)
	AT oracle.xdo.parser.v2.XMLReader.skipWhiteSpace(XMLReader.JAVA:1974)
	AT oracle.xdo.parser.v2.NonValidatingParser.parseMisc(NonValidatingParser.JAVA:331)
	AT oracle.xdo.parser.v2.NonValidatingParser.parseProlog(NonValidatingParser.JAVA:300)
	AT oracle.xdo.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.JAVA:280)
	AT oracle.xdo.parser.v2.XMLParser.parse(XMLParser.JAVA:266)

loglarada yukarıdaki şekliyle hata kaydı çıkartacaktır.

Bu hatanın nedeni üretilen xml lin karakter setinin uyumsuzluğudur.

prolog_rdf_xml

XML girş değerinin ya yukarıdaki şekliyle yada

 
XML Prolog VALUE: xml version="1.0" encoding="iso-8859-1"

olması gerekmektedir.

Mustafa Korkmaz

Oracle Applications Developer at Partnera
2005 yılında Dokuz Eylül Üniversitesi Endüstri Mühendisliğinden Mezun
Oldu, 2011 Yılında Ahmet Yesevi Üniversitesi Bilgisayar Mühendisliğinde
Yüksek Lisansını Tamamlandı,2012 Yılında Doğuş Üniversitesinde Bilgisayar
Mühendisliği Doktora Eğitimine Başladı.10 yılı aşkın bir zamandır Oracle
Ürünleri Uygulama Yazılım Uzmanı Olarak profesyonel kariyerine devam
etmektedir. İlgi alanları Middleware, CI/CD,
Oracle Database , PL/SQL , Java , Makine Öğrenmesi ve Veri Madenciliği alanlarındadır.
2 versiyon Oracle Database ' (10g, 11g) inde OCA(Oracle Certificate Associate) ve
PL/SQL Certificated Professional ünvanları bulunmaktadır.
Mail: mustafakorkmz@gmail.com
Mustafa Korkmaz


Yorum yapın

*