加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService报错javax.xml.ws.soap.SOAPFaultException: javax.xm

发布时间:2020-12-16 23:11:54 所属栏目:安全 来源:网络整理
导读:原文地址:http://blog.csdn.net/woshixuye/article/details/14312579 一、发现问题 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中,运行

原文地址:http://blog.csdn.net/woshixuye/article/details/14312579

一、发现问题
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包中的类。例如在jdkjrelib建立的endorsed文件夹里的包会覆盖该JDK的lib中原有的包。Tomcat里的Webfault对象也和JAXWS-RI冲突。故需要在JDK和Tomcat里面都要新建endorsed文件夹,放入JAXWS-RI里的相关包。


三、解决方案

步骤一:将jaxws-api.jar包copy到jdk的jrelibendorsed
步骤二:将jaxws-api.jar和jsr181-api.jar包copy到tomcatendorsed中
若没有endorsed文件夹,新建即可。jaxws-ri.2.5.5下载地址:http://download.csdn.net/download/woshixuye/6513149

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读