Archiv für den Monat: April 2016

ClassCastException with ElementNSImpl during unmarshalling

Dieser Fehler beim JAXB-Unmarshall brachte mich zu einem Fall einer XML-Annotation an einer Instanz-Variable generischem Typ:

@XmlElement(name=“begin“);
T begin;

Erst in einer Spezialisierung von der Basis-Klasse<T> wird ‚T‘ zu einem BigDecimal.

Erster Versuch war, Delegate-Getter an der Spezialisierung-Klasse anzubringen und entsprechend zu annotieren.

@XmlElement(name=“begin“, type=BigDecimal.class);
BigDecimal getBegin();

Das brachte noch nicht den Erfolg. Auch das Entfernen sämtlicher XML-Annotationen an unserer Basis-Klasse.

Erst, als in der Basis-Klasse der Member-Variablen ein neuer Name für die XML-Behandlung gegeben wurde, funktioniert es auch, zumindest für meinen Fall.

@XmlElement(name=“begin_intern“);
T begin;

Zum Prüfen ist es übrigens ziemlich hilfreich, sich die XSD erzeugen zu lassen.