博客 我又要诈尸了
最近在使用spring-ws 作为客户端访问ws服务的时候,发生了一件很奇怪的事情,在junit下面运行正常,在jboss5.1下面运行,会出现以下异常
javax.xml.ws.WebServiceException:
java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:404)
面对问题,百度先行,查了一圈也就一个靠谱的链接https://blog.csdn.net/Mark_5528/article/details/84153015
但是,完美主义的我,接受不了博客中给出的两种方案。第一个想到的是,配置messagefactyImpl属性,在我的debug大法下,尝试替换为 com.sun.internal.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl 结果变成了classnotfund,不能忍,换成com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl,O(∩_∩)O哈哈~,通过了,成功发送了请求消息,放过断点,正准备邀功请赏,忽然瞄到,代码好像没有执行结束。立刻查看cpu,内核显示有一个cpu虚高到80%,初始以为是小兄弟们写的代码有死循环,继续debug,发现是在解析xml返回内容的时候发生了死循环。
想了想,肯定是哪里不对,尝试换成axio2插件,还是一堆bug。无奈之下,继续百度,网上一片空白。功夫不负有心人,在我切换了无数的关键词之后 发现了一片神作,https://www.dontpanicblog.co.uk/2010/08/29/spring-ws-saaj-problem-in-jboss/
按照文章的办法修改了pom文件,运行,ok。