La captura de excepción servicio web con CXF: NoClassDefFoundError: SOAPFaultBuilder

StackOverflow https://stackoverflow.com/questions/1494738

  •  18-09-2019
  •  | 
  •  

Pregunta

He estado usando Apache CXF wsdl2java genera código para llamar a métodos de un servicio web desde hace algún tiempo, que hasta ahora ha estado trabajando muy bien .. El problema que estoy teniendo es que cuando el servicio web (implementado al final del pasillo de mí) legítimamente emitirá una excepción jabón, CXF viene con el siguiente mensaje de error:

  

No se pudo inicializar la clase com.sun.xml.internal.ws.fault.SOAPFaultBuilder

Estoy usando Ubuntu 9.04, OpenJDK (icedtea6 1.4.1) 6b14-1.1.1-0ubuntu11, Maven2 y CXF 2.2.3. Actualmente estoy en una pérdida sobre cómo resolver este problema, ya que el código y la configuración que estoy usando parece trivialmente sencilla .. Cualquier persona capaz de apuntar en la dirección correcta aquí? Déjame saber si puedo publicar más detalles ..

Este es el StackTrace completa regresó:

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)
¿Fue útil?

Solución

Hay dos cosas interesantes acerca de eso seguimiento de la pila:

1) Se trata de tener problemas para encontrar una implementación SAAJ. añadiendo probablemente saaj-impl.jar a la ruta de clase podría resolver eso.

2) No es el uso de CXF en absoluto. Se trata de utilizar la implementación de referencia de Sun JAX-WS que se construye en el JRE. Por lo tanto, parece que los frascos CXF no están siendo recogidos en absoluto.

Otros consejos

Tenía un problema similar cuando estamos cambiando de Ant para Maven. Utilizamos Sun JDK 1.6u20.

Hemos perdido estas bibliotecas en la guerra experto-ensamblados de:

jaxws-api jaxws-rt JAXWS-herramientas

Después de la adición de ellos todas las obras, ya que habían trabajado antes. Esperamos que esto ayude a alguien!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top