Frage

Ich habe mit Apache CXF wsdl2java Code generiert Methoden aus einem Webservice seit einiger Zeit zu nennen, die bisher fein gearbeitet hat .. Das Problem, das ich habe, ist, dass, wenn der Webservice (umgesetzt auf dem Flur von mir) berechtigterweise eine Seife Ausnahme auslöst, CXF kommt mit folgenden Fehlermeldung auf:

  

konnte nicht initialisiert Klasse com.sun.xml.internal.ws.fault.SOAPFaultBuilder

Ich bin mit Ubuntu 9.04, OpenJDK (IcedTea6 1.4.1) 6b14-1.1.1-0ubuntu11, Maven2 und CXF 2.2.3. Ich bin derzeit mit Verlust, wie dieses Problem zu lösen, wie der Code und den Setup Ich bin mit trivialer einfach scheint .. Wer in der Lage mich hier in der richtigen Richtung zeigen? Lassen Sie uns wissen, wenn ich weitere Details veröffentlichen kann ..

Dies ist die vollständige Stacktrace zurückgegeben:

java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.internal.ws.fault.SOAPFaultBuilder
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:107)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
    at $Proxy36.downloadPDB(Unknown Source)
    at path.to.my.code.downloadInvalidFileID(SingleMethodTest.java:64)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
    at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
    at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
    at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
    at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
    at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
    at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
    at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
    at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
    at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
    at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
    at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)
War es hilfreich?

Lösung

Es gibt zwei interessante Dinge über diesen Stack-Trace:

1) Es wird Probleme haben eine SAAJ Implementierung zu finden. Wahrscheinlich Zugabe saaj-impl.jar zu dem Classpath könnte, dass lösen.

2) Es wird mit CXF haupt nicht. Es ist mit der Sun JAX-WS Referenzimplementierung, die in das jre gebaut ist. So sieht es aus wie die cxf Gläser werden überhaupt nicht aufgenommen werden.

Andere Tipps

Hat ähnliches Problem, wenn wir von Ant zu Maven sind umgeschaltet wird. Wir verwenden Sun JDK 1.6u20.

Wir haben diese Bibliotheken in Maven-assembled Krieg verpaßt:

jaxws-api jaxws-rt jaxws-Tools

sie alle Arbeiten Nach der Zugabe, wie es vorher gearbeitet hatte. Hoffe, dass dies jemand helfen!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top