簡體   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