繁体   English   中英

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

[英]NoClassDefFoundError for com.sun.xml.internal.ws.fault.SOAPFaultBuilder

我们的实时环境中的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上的一些帖子:

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

无法初始化com.sun.xml.internal.ws.fault.SOAPFaultBuilder类

java.lang.NoClassDefFoundError:无法初始化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或其他文件),为什么我创建的超级简单客户端没有抛出错误? 实时环境和本地环境都使用Java7u51。

我有同样的错误,我通过从tomcat lib文件夹中删除jax-impl.jar解决了这个问题。 jaxb jar版本与我安装在tomcat中的一个Web应用程序可能发生冲突。

http://programtalk.com/java/i-was-running-gwt-application-on-tomca/

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

由于问题中提到了以下错误,因此找不到SOAP错误的根本原因。

我按照以下链接中提到的步骤进行操作,以确定NoClassDefFoundError的原因。

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

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

java.lang.ExceptionInInitializerError
造成原因:java.lang.ClassCastException:com.sun.xml.bind.v2.runtime.JAXBContextImpl无法转换为com.sun.xml.internal.bind.api.JAXBRIContext

上述类广播异常的原因是由于jar文件冲突。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM