[solved] Apache CXF Soap Client: ClassCastException (SEIStub/ClientProxy)
Author: astangl
Publication Date: 6/27/2014 12:01
Hallo,
ich versuche in einem Executable, welches in einem FS Modul hinterlegt ist, einen Apache CXF Soap Client zu verwenden. Lokal kann ich den Client ohne Probleme ausführen, wenn ich allerdings das Executable im FS Client starte bekomme ich eine ClassCastException weil anscheinend com.sun.xml.ws.client.sei.SEIStub (rt.jar) vor den CXF dependencies im ClassPath liegt und daher der CXF Client die falsche Implementierung verwendet.
Ich hab bereits versucht, den Soap Client als eigenständiges Projekt zu implementieren und die daraus resultierende Jar Datei im Verzeichnis /shared/lib zu platzieren, damit das Jar u.U. früher im ClassPath landet, leider scheint die Jar aber nicht im Module Class Loader sichtbar zu sein, sodass eine ClassNotFoundException auftritt.
Kann mir jemand bei diesem Problem weiterhelfen? Wie schaffe ich es, dass mein Soap Client die CXF Implementierung "ClientProxy" anstatt den "SEIStub" verwenden kann?
Tags: classcastexception, classloader, classpath, cxf, module, soap
-
Author: astangl - 7/8/2014 13:38
Danke für die Antwort. Hab ich alles schon probiert, die von Ihnen geposteten Links sind mir also nicht unbekannt.
Ich hab das Problem soeben gelöst indem ich eine korrekte Sprint-Konfiguration für CXF geschrieben habe und mir meinen client über den sprint context per "getBean" hole.
Zusätzlich biege ich mir dass ClassLoading per
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
zurecht.
Auf diese weise scheint es keine Probleme mit dem Class-Path zu geben.
0
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
1 Kommentar