Когда я использую JAXB, что-то не так.
Я конвертирую объект в строку xml, и все в порядке.
Но когда я конвертирую xml String обратно в entity, некоторая информация теряется (все они имеют один и тот же тип java.util.Date
).
В объекте: public Date flightBaseDate;
В xml: <flightBaseDate>2013-09-16T00:00:00 08:00</flightBaseDate>
после демаршаллинга getFlightBaseDate()
возвращает null
.
Я погуглил.
Следуя одному предложению, я использовал @ в своей сущности.
Тогда это:
@XmlElement(name = "timestamp", required = true)
public Date flightBaseDate;
Я уверен, что это будет идеально,
но ... выдает исключение, например:
com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions Class has two properties of the same name "flightBaseDate" this problem is related to the following location: at public java.lang.String com.wonders.nlia.omms.vo.FlightServiceInfoVo.getFlightBaseDate() at com.wonders.nlia.omms.vo.FlightServiceInfoVo this problem is related to the following location: at public java.lang.String com.wonders.nlia.omms.vo.FlightServiceInfoVo.flightBaseDate at com.wonders.nlia.omms.vo.FlightServiceInfoVo
Почему JAXB не может различить свойство и его getMethod?
Как это решить?
Платформа : jdk7 win7 eclipse tomcat wtp
Мой код демаршаллинга:
JAXBContext context = JAXBContext.newInstance(FlightServiceInfoVo.class);
Unmarshaller unMarshaller = context.createUnmarshaller();
FlightServiceInfoVo flightServiceInfoVo =(FlightServiceInfoVo)unMarshaller.unmarshal(new StringReader(flightServiceInfoVoXml));
flightServiceInfoVoXml - это строка.