2011-12-17 59 views
0

這是在生產站點向我報告的。我們有一個消息數據庫表,裏面的對象使用標準的Java XMLEncoder以XML的形式存儲。當我們處理消息時,我們解碼來自數據庫中字段的對象。XMLDecoder引發ArrayIndexOutOfBoundsException

有時客戶端會記錄此錯誤。

ERROR Dec 15 17:19:49 services.ScheduleRunner - 0 occurred processing 
message 4183439 java.lang.ArrayIndexOutOfBoundsException: 0 
       at com.sun.beans.ObjectHandler.dequeueResult(Unknown Source) 
       at java.beans.XMLDecoder.readObject(Unknown Source) 
       at com.hl7.services.ScheduleRunner.run(ScheduleRunner.java:116) 
       at java.util.TimerThread.mainLoop(Unknown Source) 
       at java.util.TimerThread.run(Unknown Source) 

他們給我發送了XML,我自己試了一下,它對我很有用。任何想法爲什麼會失敗?他們目前運行Java 6_22,並且我擁有Java 6_26。

它也很奇怪,它顯示「未知來源」。 Java源代碼是否與運行時一起部署?另一個奇怪的是,我的源文件不具有行116

TIA

回答

2

東西可能是特殊字符的原因。

&lt; < 
&gt; > 
&amp; & 
&apos; ' 
&quot; " 
1

使用encoder = new XMLDecoder(org.apache.commons.io.IOUtils.toInputStream(stringfromdatabase));從數據庫創建InputStream

相關問題