使用JAXB解组会导致:javax.xml.bind.UnmarshalException(无效的字节序列)

时间:2011-07-16 14:53:26

标签: jaxb unmarshalling

这是我的问题:我编写了一个程序来解组作为输入的XML文件,结果发现我的程序在我的开发环境中工作得很好但是这个程序会产生以下结果客户环境中的异常:

javax.xml.bind.UnmarshalException   - 链接异常: [java.io.UTFDataFormatException:2字节UTF-8序列的无效字节2。]

作为我程序输入的XML文件使用UTF-8作为编码类型。 Unmarshaller对象使用默认编码类型,即UTF-8,因为我没有为它设置任何属性值。此外,我没有为unmarshaller设置架构,因此,我甚至没有请求XML验证。

有没有人有任何想法或有没有人遇到过同样的问题?

提前致谢

1 个答案:

答案 0 :(得分:0)

我已经收到此错误。我已将配置更改为使用ISO-8859-1编码: marshaller.setProperty(Marshaller.JAXB_ENCODING,“ISO-8859-1”);

我可以将UTF-8字符串放在xml流中,即使编码没有像ISO-8859-1那样定义,它也可以正确编组/取消编码