JAXB javax.xml.bind.PropertyException

JAXB javax.xml.bind.PropertyException,jaxb,Jaxb,当我试图读取包含一些日文字符的XML文件时,出现以下错误 javax.xml.bind.PropertyException: jaxb.encoding at javax.xml.bind.helpers.AbstractUnmarshallerImpl.getProperty(AbstractUnmarshallerImpl.java:360) at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.getPr

当我试图读取包含一些日文字符的XML文件时,出现以下错误

javax.xml.bind.PropertyException: jaxb.encoding
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.getProperty(AbstractUnmarshallerImpl.java:360)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.getProperty(UnmarshallerImpl.java:423)
at com.jaxb.JAXBTest.main(JAXBTest.java:23)
enter code here
包com.jaxb

import java.io.FileReader;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

public class JAXBTest 
{
    public static void main(String args[])
    {

        try
        {
            JAXBContext context = JAXBContext.newInstance(com.pain.jaxb.ver2.Document.class);           
            Unmarshaller um = context.createUnmarshaller();         
            um.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");          
            com.pain.jaxb.ver2.Document PainTransferList2 = (com.pain.jaxb.ver2.Document) um.unmarshal(new FileReader("C:/WorkArea/JAXB/src/com/pain/messages/APXSEPAS_510812_1.XML"));         

        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

    }

}
请给我一些建议

谢谢
Rafi

您正在
Umarshaller
上设置
Marshaller
属性:

Unmarshaller um = context.createUnmarshaller();         
um.setProperty(Marshaller.JAXB_ENCODING, "UTF-8"); 
只能在
Unmarshaller
上设置
Unmarshaller
属性


请删除
setProperty
并重试。

是否可以在不设置JAXB\u编码属性的情况下重试?我认为它只用于编写(编组)XML。@Rafi-有关JAXB属性的更多信息,请参阅:感谢您的回复。我正在使用JAXB编写一个通用XML解析器,用于解析ISO20022信用转账XML文件。我已经使用内置JAXB工具生成了所有POJO,为所有ISO版本提供了XSD。我正在使用JAXB编写一个通用XML解析器,用于解析ISO20022信用转账XML文件。我使用内置JAXB工具生成了所有POJO,为所有ISO版本提供了XSD。pain.001.001.01.xsd/pain.001.001.02.xsd/pain.001.001.03.xsd。我已经创建了一个单一的包结构,这样我就只能创建java对象的唯一元素。现在在运行时,我为JAXBContext context=JAXBContext.newInstance(DocumentVer01.class)提供了不同的文档类;每个版本的文档类都不同。嗨,我在同一个论坛上找到了这个问题的答案。