WebService報錯javax.xml.ws.soap.SOAPFaultException: javax.xml.ws.WebFault.messageName()
一、發現問題
JAX-WS規範是一組XML web services的JAVA API。JAXWS-RI是其的一個包。
用jaxws-ri-2.2.5.zip做webservice,將jaxws-ri-2.2.5.zip中lib內容拷貝到web project的lib中,運行時使用該包時拋出異常:javax.xml.ws.soap.SOAPFaultException: javax.xml.ws.WebFault.messageName() Ljava/lang/String。
二、原因分析
JAXWS-RI包中使用了WebFault對象,JDK也提供該對象,但JDK的WebFault對象沒有messageName這個方法,Tomcat會優先加載JDK裏的對象,這就是包衝突問題。
這就需要建立endorsed文件夾。可理解為將endorsed文件夾裏的包修打入到虛擬機指定的啟動API中取而代之。但能夠覆蓋的類是有限的,如不包括java.lang包中的類。例如在jdk\jre\lib建立的endorsed文件夾裏的包會覆蓋該JDK的lib中原有的包。Tomcat裏的Webfault對象也和JAXWS-RI衝突。故需要在JDK和Tomcat裏麵都要新建endorsed文件夾,放入JAXWS-RI裏的相關包。
三、解決方案
步驟一:將jaxws-api.jar包copy到jdk的jre\lib\endorsed
步驟二:將jaxws-api.jar和jsr181-api.jar包copy到tomcat\endorsed中
若沒有endorsed文件夾,新建即可。jaxws-ri.2.5.5下載地址:https://download.csdn.net/download/woshixuye/6513149
最後更新:2017-04-03 20:19:10
上一篇:
發送郵件程序報錯454 Authentication failed以及POP3和SMTP簡介
下一篇:
tomcat報錯INFO: Maximum number of threads (200) created for connector with address null and port 8080
MySQL · myrocks · myrocks之Bloom filter
ffmpeg yasm not found, use --disable-yasm for a crippled build
微服務架構的分布式事務解決方案
java 後台框架 支持APP接口調用 APP後台 java springmvc mybaits mysql oracle html5 後台框架 手機後台框架
pythonchallenge_level9
Oracle中的number類型
自定義鏡像遷移實例到新的區域(實例啟動異常排解)
虛擬機係統與宿主機共享上網設置
專訪 | 今日頭條李磊:程序員如何躋身AI大潮,應用如何落地
VMware第三季度業績超分析師預期 盤後股價上漲0.15%