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


Yorum yapın

*