Używam generowanego kodu wsdl2java Apache CXF do wywoływania metod z usługi sieciowej od jakiegoś czasu, który do tej pory działa dobrze. Problemem, który mam, jest to, że gdy usługa (realizowane tylko na korytarzu ze mną) słusznie zgłasza wyjątek mydła, CXF pojawia się następujący komunikat o błędzie:Wyłapywanie wyjątku usług sieci Web z CXF: NoClassDefFoundError: SOAPFaultBuilder
Could not initialize class com.sun.xml.internal.ws.fault.SOAPFaultBuilder
Używam Ubuntu 9.04, OpenJDK (IcedTea6 1.4.1) 6b14- 1.1.1-0ubuntu11, Maven2 i CXF 2.2.3. Obecnie nie mam pojęcia, jak rozwiązać ten problem, ponieważ kod i ustawienia, których używam, wydają się banalnie proste. Czy ktoś może wskazać mi właściwy kierunek? Daj mi znać, jeśli mogę dodawać żadnych dalszych szczegółów ..
Jest to pełna StackTrace powrócił:
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)
W CXSFFAQ istnieje wpis "Czy mogę uruchomić w środowisku Java 6", czy to sprawdziłeś? http://cxf.apache.org/faq.html#FAQ-CytatywnieAskedQuestions – skaffman
Hmm, dzięki. Tęskniłem za tą notatką, a teraz dodałem com.sun.xml.indeks jaxb-impl i jaxb-xjc w maven .. Ale do tej pory nie szczęście/zmiana .. Będę pracował w tym więcej .. – Tim
Nie ma szczęścia to Wygląda na to, że wciąż ten sam stacktrace. Czy jest coś, co muszę wykluczyć używając Mavena? – Tim