java.lang.Classcastexception-Fehler: com.kk.LAND kann nicht umgewandelt werden, javax.xml.binden.JAXBElement
Meine main Klasse ist
public static void main(String[] args) throws JAXBException,
FileNotFoundException {
Class[] classes = new Class[5];
classes[0] = com.kk.AddressDetails.class;
classes[1] = com.kk.COUNTRY.class;
classes[2] = com.kk.ObjectFactory.class;
classes[3] = com.kk.Details.class;
classes[4] = com.kk.Districts.class;
JAXBContext context = JAXBContext.newInstance(classes);
Unmarshaller unmarshaller = context.createUnmarshaller();
JAXBElement<COUNTRY> unmarshal = (JAXBElement<COUNTRY>) unmarshaller
.unmarshal(new File("src\\countrydetails.xml"));
COUNTRY value = unmarshal.getValue();
System.out.println(value);
Also während der Erstellung dieser habe ich diese Exception in thread "main" java.lang.Classcastexception-Fehler: com.kk.LAND kann nicht umgewandelt werden, javax.xml.binden.JAXBElement
am main.kk.ClientApp.main(ClientApp.java:31)
- java ist case sensitive. Ich vermute LANDES werden sollte com.kk.Country.class
- Ist
COUNTRY
Wurzel der xml-Datei ? - Schah: Nein, es ist LAND
- ja LAND ist die Wurzel der xml
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit Ihr
COUNTRY
Klasse versehen mit@XmlRootElement
es bedeutet, es ist eindeutig verbunden mit einem root-element und das Ergebnis der unmarshal-Betrieb wirdCOUNTRY
Wenn statt
COUNTRY
hatten eine oder mehrere entsprechende@XmlElementDecl
Anmerkungen oder man verwendet eineunmarshal
Methode, nahm eineClass
parameter erhalten Sie eine Instanz vonJAXBElement
Weitere Informationen
Weil
Unmarshaller.unmarshal(File f)
gibt einObject
und nichtJAXBElement
.Hier ist die Signatur:
Ihre Lösung sollte sein:
Müssen Sie nicht gegossen die unmarshl Ergebnis zu JAXBElement, sollte es einfach sein, Ihr LAND Klasse, dass Sie versuchen zu unmarshal. Vorausgesetzt, Sie haben korrekt annotiert Ihre COUTNRY Klasse, dann können Sie einfach tun Sie dies:
Folgen Sie dieses tutorial, um zu lernen, über JAXB-marshalling und unmarshalling durch einfaches Beispiel:
http://www.mkyong.com/java/jaxb-hello-world-example/