Netbeans mit JAXB Random classcastexception-Fehler ..kann nicht umgewandelt werden, com.Sonne.xml.binden.v2.- Laufzeit.reflektieren.Accessor
Heruntergeladen habe ich die Soap-Nachrichten von einem SOAP-Service und versuchen, zu verspotten Soap-Dienst durch Rücksendung der heruntergeladenen Nachrichten. der folgende code zeigt, wie ich bin Unmarshalling der Soap-Nachricht in die gewünschte Antwort
public static DataClientType unmarshallFile(String fileName) throws Exception {
XMLInputFactory xif = XMLInputFactory.newFactory();
XMLStreamReader xsr = xif.createXMLStreamReader(ClientSampleSoapResponseData.class.getResourceAsStream(fileName));
xsr.nextTag(); //Advance to Envelope tag
xsr.nextTag(); //Advance to Header
xsr.nextTag(); //Advance to Body tag
xsr.nextTag(); //Advance to getClientByAccountResponse
xsr.nextTag(); //Advance to content of getClientByAccountResponse
JAXBContext jc = JAXBContext.newInstance(GetClientByAccountResponse.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
JAXBElement<GetClientByAccountResponse> je = unmarshaller.unmarshal(xsr, GetClientByAccountResponse.class);
return je.getValue().getClientDataContract();
}
Aber ich bekomme immer diese ClassCastExeption die zufällig erfolgt. Nach einer Reihe von test-Iterationen, beginnt es zu geschehen. Manchmal ist ein clean und build-fixes, aber manchmal funktioniert es nicht.
java.lang.ClassCastException: com.x.X.X.X.GetClientByAccountResponse$JaxbAccessorF_clientDataContract cannot be cast to com.sun.xml.bind.v2.runtime.reflect.Accessor
at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.instanciate(OptimizedAccessorFactory.java:188)
at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:180)
at com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:256)
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.<init>(SingleElementNodeProperty.java:90)
Ich habe versucht, andere online-Vorschläge, wie die Rückkehr zu alten jaxb-Versionen und mit endorsed Ordner in das maven-compiler-Konfiguration, aber es passiert immer noch
Alle Ideen, was könnte die Ursache und mögliche Lösungen?
Danke u
- wenn Sie sich um die Abstimmung Völker Fragen unten, zumindest einen Grund oder etwas vorschlagen! Denken Sie daran, wir sind nicht alle so schlau wie u denken, Sie sind.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gelöst mit folgenden code
Parameter kann auch festgelegt werden, JVM mit
Traf ich die gleiche Fehlermeldung, wenn ich versuchte, zu aktualisieren, JAXB, um eine neuere version als das, was kam mit dem JDK. Java-stieß auf zwei oder mehr Instanzen von JAXB zur Laufzeit und konnte sich nicht entscheiden, welche version zu verwenden.
In meinem Fall war das problem, dass meine Anwendung verwendet web-services, und ich hatte nicht externalisiert JAX-WS als gut. Die Anwendung begann mit com.Sonne.xml.binden.v2.runtime-Klassen, aber wenn es begann mit einer WSDL-Datei, die interne JAX-WS versucht aufzurufen com.sun.xml.interne.binden.v2.runtime-Klassen. Der Fehler ging Weg als ich heruntergeladen und installiert, JAX-WS, und ich war in der Lage, um den Aktualisierungsprozess fortsetzen.
Ich lief in das gleiche Problem bei einer meiner Anwendungen. In meinem Fall war das Projekt mit einer Bibliothek kompiliert mit Java 1.5-Kompatibilität, während das wichtigste Projekt war die Kompatibilität mit der version 1.6. Wenn ich beide verändert zu verwenden 1.6 das problem ging Weg. Ich hoffe, dies wird in der Lage sein, jemandem zu helfen, denn das problem kann sehr frustrierend sein und schwer zu verfolgen.
Akzeptierte Lösung für mich gearbeitet, wenn in Intellij, aber ich habe die gleiche Fehlermeldung bei der Ausführung von maven von der Befehlszeile aus. Hinzufügen, um die Konfiguration für
maven-surefire-plugin
gelöst ist das Problem auch da:Habe ich entfernt, die Abhängigkeit von separaten jaxb-impl jar in den build.sbt. Das funktioniert jetzt.
Ich hatte ein ähnliches Problem, aber ich habe nicht /don ' T haben eine dependeny(-version-mismatch)-problem.
In meinem Fall, eine Klasse fehlte ein @XmlAccessorType, hinzufügen diese Anmerkung ist mein problem gelöst. Abgestimmt auf Ihren Fall, die Lösung wäre:
Einschließlich jaxbiimpl jar während der Laufzeit durch Ihre Abhängigkeit von den manager in der parent-pom wird das Problem beheben. Diese Lösung ist spezifisch für maven-Projekte.