2015-09-18 2 views
0

com.e1.ewx.base.model.weixinapi.Event расширяет com.e1.ewx.base.model.weixinapi.BaseMsgпочему JAXBContext просто получить базовый класс объекта А продолжается B, просто получить

JAXBContext context = JAXBContext.newInstance(Event.class); 
Unmarshaller unmarshaller = context.createUnmarshaller(); 
Event eee = (Event)unmarshaller.unmarshal(new StringReader(xmlStr)); 
System.out.println(eee.getMsgType()); 

Исключение:

Exception in thread "main" java.lang.ClassCastException: com.e1.ewx.base.model.weixinapi.BaseMsg cannot be cast to com.e1.ewx.base.model.weixinapi.Event 
    at Test.main(Test.java:49) 

Почему?

+0

Похоже, что результат функции 'unmarshal' не может быть задан для ввода' Event'. –

+2

Кажется, ваш XML-документ не содержит Event, а просто BaseMsg. Пожалуйста, покажите нам корневой элемент в xmlStr и соответствующие классы XSD/JAXB. – Puce

ответ

0

Кажется, что xmlStr является представлением экземпляра BaseMsg, а не экземпляром события.

 Смежные вопросы

  • Нет связанных вопросов^_^