当我使用 JAXB 时,出现了问题。
我将实体转换为 xml 字符串,一切正常。
但是当我将 xml String 转换回实体时,一些信息会丢失(它们都具有相同的类型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 个 IllegalAnnotationExceptions 计数
类有两个同名的属性“flightBaseDate”
此问题与以下位置有关:
在公共 java.lang.String com.wonders.nlia.omms.vo.FlightServiceInfoVo.getFlightBaseDate()
在 com.wonders.nlia.omms.vo.FlightServiceInfoVo
此问题与以下位置有关:
在公共 java.lang.String com.wonders.nlia.omms.vo.FlightServiceInfoVo.flightBaseDate
在 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 是一个字符串。