gpt4 book ai didi

java - com.sun.xml.internal.ws.fault.SOAPFaultBuilder 的 NoClassDefFoundError

转载 作者:搜寻专家 更新时间:2023-11-01 03:36:57 26 4
gpt4 key购买 nike

我们在实时环境中的 Web 服务客户端最近出现异常:

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:135)
at com.sun.proxy.$Proxy146.search(Unknown Source)
....

我在网上做了很多搜索,包括在 StackOverflow 上的一些帖子:

Catching webservice exception with CXF: NoClassDefFoundError: SOAPFaultBuilder

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

java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.internal.ws.fault.SOAPFaultBuilder

我的理解是我们的客户端从服务器收到了一个 SOAP 错误,它丢失了一些 jar 文件。所以我试图通过首先重新创建它来解决问题。

我在 Eclipse 中创建了一个简单的 Web 服务服务器项目,它有一个 Web 方法抛出一个由 @WebFault 注释的简单故障类。然后我创建了一个使用 web 方法的简单 Web 服务客户端项目。客户端项目的类路径中没有任何其他库/jar;它所拥有的只是JRE。令我惊讶的是,它没有抛出 NoClassDefFoundError 异常!相反,我得到了我在服务器端定义的 javax.xml.ws.soap.SOAPFaultException

SOAPFaultBuilder 类确实在 JRE 的 rt.jar 中。因此,我创建的简单 Web 服务项目可能会正常工作。但是,我们现场环境中的Web服务客户端怎么会抛出NoClassDefFoundError异常呢?该项目的类路径中肯定有 rt.jar。

任何人都可以阐明这个问题吗?如果它缺少一些 jar 文件(来自 jaxws RI 或 Apache CXF 或其他),为什么我创建的 super 简单的客户端不会抛出错误?现场环境和我本地环境都使用Java7u51。

最佳答案

我遇到了同样的问题,我可以随后解决这个问题。

由于问题中提到的以下错误,无法找到 SOAP Fault 的根本原因。

我按照以下链接中提到的步骤来确定 NoClassDefFoundError 的原因。

http://javarevisited.blogspot.in/2011/06/noclassdeffounderror-exception-in.html

我可以在我的应用程序日志中找到以下错误:

java.lang.ExceptionInInitializerError
Caused by: java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.internal.bind.api.JAXBRIContext

出现上述classcast异常的原因是jar文件冲突

rt.jar(存在于 jre 类路径中)jaxb-impl-2.0.1.jar(它存在于我的应用程序类路径中)。

我已经从我的类路径中删除了文件 jaxb-impl-2.0.1.jar 并且实际错误消失了。

关于java - com.sun.xml.internal.ws.fault.SOAPFaultBuilder 的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28462923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com