Question

J'utilise Apache CXF wsdl2java code généré pour appeler les méthodes d'un webservice depuis un certain temps, ce qui a été jusqu'ici fonctionne très bien .. Le problème que je vais avoir est que lorsque le webservice (mis en œuvre juste en bas de la salle de moi) jette légitimement une exception du savon, CXF vient avec le message d'erreur suivant:

  

Impossible d'initialiser la classe com.sun.xml.internal.ws.fault.SOAPFaultBuilder

J'utilise Ubuntu 9.04, OpenJDK (IcedTea6 1.4.1) 6b14-1.1.1-0ubuntu11, Maven2 et CXF 2.2.3. Je suis actuellement à une perte sur la façon de résoudre ce problème, comme le code et la configuration que je utilise semble trivialement simple, .. Toute personne capable de me diriger dans la bonne direction ici? Permettez-moi de savoir si je peux poster des détails supplémentaires ..

Ceci est la pleine stacktrace retourné:

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)
Était-ce utile?

La solution

Il y a deux choses intéressantes sur cette trace de la pile:

1) Il a des difficultés à trouver une implémentation SAAJ. Probablement ajoutant saaj-impl.jar au classpath pourrait résoudre ce problème.

2) Il n'utilise pas du tout CXF. Il utilise l'implémentation de référence Sun JAX-WS qui est intégré dans le jre. , Il semble donc que les pots CxF ne sont pas pris en charge du tout.

Autres conseils

avait le même problème lorsque nous passer de Ant Maven. Nous utilisons 1.6u20 Sun JDK.

Nous avons manqué ces bibliothèques dans la guerre assemblée maven-de:

JAXWS-api JAXWS-rt JAXWS-tools

Après les ajouter tous les travaux qu'il avait travaillé auparavant. Espérons que cela aidera quelqu'un!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top