JAXB javax.xml.bind.PropertyException - PullRequest
       0

JAXB javax.xml.bind.PropertyException

6 голосов
/ 23 августа 2011

Я получаю сообщение об ошибке ниже, когда пытаюсь прочитать 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();
        }

    }

}

Пожалуйста, совет.

Спасибо Рафи

1 Ответ

5 голосов
/ 23 августа 2011

Вы устанавливаете свойство Marshaller для Umarshaller:

Unmarshaller um = context.createUnmarshaller();         
um.setProperty(Marshaller.JAXB_ENCODING, "UTF-8"); 

Вы можете установить Unmarshaller свойства только для Unmarshaller.

Удалите setProperty и попробуйте снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...