Al usar JAXB con Java-First, los campos/propiedades de tipo java.util.Date
se agrupan y desasignan como xs:dateTime
y todo funciona como se esperaba.Dile a JAXB que elimine la carga <xs:dateTime> a la clase Date usando las anotaciones
Pero si el tipo de campo/propiedad es Object
, JAXB unmarshals xs:dateTime
a XMLGregorianCalendarImpl
.
Tengo que encontrar una manera que hace que los valores de fecha y hora unmarshal JAXB a java.util.Date
por sí mismo utilizando anotaciones. De lo contrario, tendré que revisar todos los valores no asignados en cada caso de uso.
Incluso si hubiera algún after-unmarshall-hook para definir en las clases que contienen los campos Object y convertir las instancias manualmente sería bueno. Pero no pude encontrar nada que pueda usarse de esta manera tampoco.
Tenga en cuenta que tengo acceso limitado al contexto de JAXB, ya que se usa dentro de Apache CXF.
El objeto no siempre es una Fecha. Puede ser de varios tipos. En el XSD generado, se especifica como xs: anyType. La fecha es uno de los valores posibles. – Iravanchi
Puede escribir un XmlAdapter para convertir entre tipos de fecha. –
Tengo un XmlAdapter para convertir entre XMLGregorianCalendar y Date, pero no puedo aplicarlo a un campo de tipo Object usando @XmlJavaTypeAdapter - resulta en IllegalAnnotationException. – Iravanchi