XMLDecoder抛出ArrayIndexOutOfBoundsException

时间:2011-12-17 12:52:31

标签: java xml-serialization

这是在生产现场向我报告的。我们有一个消息数据库表,里面的对象使用标准的Java XMLEncoder存储为XML。当我们处理消息时,我们从数据库中的字段解码对象。

有时客户端会记录此错误。

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 个答案:

答案 0 :(得分:2)

可能是特殊字符的原因。

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

答案 1 :(得分:1)

使用encoder = new XMLDecoder( org.apache.commons.io.IOUtils.toInputStream(stringfromdatabase));从数据库创建InputStream