Quando si utilizza JAXB con Java-First, i campi/proprietà di tipo java.util.Date
vengono sottoposti a marshalling e unmarshalled come xs:dateTime
e tutto funziona come previsto.Dillo a JAXB alla classe unmarshal <xs:dateTime> alla data utilizzando annotazioni
Ma se il tipo di campo/proprietà è Object
, JAXB unmarshals xs:dateTime
a XMLGregorianCalendarImpl
.
Ho bisogno di trovare un modo che faccia sì che i valori JAXB di data e ora unmarsed siano java.util.Date
usando le annotazioni. Altrimenti, avrò bisogno di passare attraverso tutti i valori non marroni in ogni caso d'uso.
Anche se esistessero alcuni hook after-unmarshall da definire nelle classi contenenti i campi Object e la conversione manuale delle istanze sarebbe buona. Ma non sono riuscito a trovare nulla che possa essere usato in questo modo.
Nota che l'accesso al contesto JAXB è limitato, poiché viene utilizzato all'interno di Apache CXF.
L'oggetto non è sempre una data. Può essere di vari tipi. Nell'XSD generato, è specificato come xs: anyType. La data è uno dei valori possibili. – Iravanchi
È possibile scrivere un XmlAdapter per la conversione tra i tipi di data. –
Possiedo un XmlAdapter per la conversione tra XMLGregorianCalendar e Date, ma non riesco ad applicarlo a un campo di tipo Object utilizzando @XmlJavaTypeAdapter - risulta in IllegalAnnotationException. – Iravanchi