java - 使用 CXF : NoClassDefFoundError: SOAPFaultBuilder 捕获 Web 服务异常

标签 java cxf soapfault

一段时间以来,我一直在使用 Apache CXF wsdl2java 生成的代码从 Web 服务调用方法,目前为止一切正常。我遇到的问题是,当 Web 服务(在大厅下方实现从我这里)合法地抛出 soap 异常,CXF 会出现以下错误消息:

Could not initialize class com.sun.xml.internal.ws.fault.SOAPFaultBuilder

我使用的是 Ubuntu 9.04、OpenJDK (IcedTea6 1.4.1) 6b14-1.1.1-0ubuntu11、Maven2 和 CXF 2.2.3。我目前对如何解决这个问题一头雾水,因为我使用的代码和设置看起来非常简单。任何人都可以在这里为我指明正确的方向吗?如果我可以发布任何进一步的详细信息,请告诉我..

这是返回的完整堆栈跟踪:

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)

最佳答案

当我们从 Ant 切换到 Maven 时遇到了类似的问题。我们使用 Sun JDK 1.6u20。

我们在 maven-assembled war 中错过了这些库:

jaxws-api jaxws-rt jaxws-工具

添加它们之后,一切都像以前一样工作。希望这会对某人有所帮助!

关于java - 使用 CXF : NoClassDefFoundError: SOAPFaultBuilder 捕获 Web 服务异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1494738/

相关文章:

PHP SoapFault 详细信息命名空间

java - Android:下载 .html 并将其转换为 String

debugging - Grails:如何转储对象的属性?

java - ESB 支持的数据库

perl - 如何在 SOAP::Lite 中处理命名空间生成?

不发送 StackTrace 的 WCF FaultException

soap - 解决SoapFault异常: [HTTP] Unable to parse URL

java - 更改 ReSTLet 发回的状态代码以进行身份​​验证

java - Spring 文件上传 - 'Required request part is not present'

java - 是否有不被视为空白的不可见字符?