Pobrałem wiadomości Soap z usługi SOAP i próbowałem sfałszować usługę Soap, zwracając pobrane wiadomości. następujący kod pokazuje jak ja Unmarshalling komunikatu SOAP do wymaganej reakcjiNetbeans z JAXB Random ClassCastException .. cann można przesyłać do com.sun.xml.bind.v2.runtime.reflect.Accessor
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();
}
Jednak wciąż otrzymuję ten ClassCastExeption co zdarza się przypadkowo. Po wielu testowych iteracjach zaczyna się to dziać. Czasami czyszczenie i kompilacja naprawia go, ale czasami nie działa.
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)
Próbowałem inne sugestie online, takich jak powrót do starych wersjach JAXB i stosując zatwierdzone foldery w konfiguracji Maven kompilatora, ale nadal zdarza
jakieś pomysły na to, co może być przyczyną to i możliwe rozwiązania?
Thank u
@TheDownVoter, jeśli chcesz pominąć pytania dotyczące głosów głosujących, podaj przynajmniej przyczynę lub coś podpowiedz! Pamiętaj, że nie wszyscy jesteśmy tak inteligentni, jak ci się wydaje. –