当在Java-First中使用JAXB时,类型java.util.Date
的字段/属性被编组和编组为xs:dateTime
,并且所有内容都按预期工作。告诉JAXB使用注释解除日期类<xs:dateTime>
但是,如果字段/属性的类型为Object
,那么JAXB会将xs:dateTime
解组为XMLGregorianCalendarImpl
。
我需要找到一种方法,使JAXB解组日期时间值本身使用注释java.util.Date
。否则,我需要在每个用例中查看所有未编组的值。
即使有一些after-unmarshall-hook在包含Object字段的类上定义并手动转换实例也会很好。但我找不到任何可以这种方式使用的东西。
请注意,由于在Apache CXF中使用了JAXB上下文,因此我有限制的访问权限。
该对象并不总是日期。它可以是各种类型。在生成的XSD中,它被指定为xs:anyType。日期是可能的值之一。 – Iravanchi 2010-10-17 14:20:49
您可以编写一个XmlAdapter来在日期类型之间进行转换。 – 2010-10-17 14:23:44
我有一个XmlAdapter用于在XMLGregorianCalendar和Date之间进行转换,但我无法将其应用于使用@XmlJavaTypeAdapter的Object类型的字段 - 它导致IllegalAnnotationException。 – Iravanchi 2010-10-17 15:53:05