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%