setProperty must be overridden by all subclasses of SOAPMessage 解决方法

setProperty must be overridden by all subclasses of SOAPMessage 解决办法
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) at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:314) at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:172) at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:152) at $Proxy355.getUserList(Unknown Source)
.......


开发环境
(1)JBoss:4.2.3
(2)jdk:1.6.25

异常描述:
webservice客户端用 jdk1.6的wsimport 生成的,然后将工程部署在Jboss里运行,结果上面的报错。 在网上搜索了下,说是“Jboss的soap实现的是老的javax.xml.soap.SoapMessage接口,这个接口的setProperty方法在老版本是不需要override的,但是到了Java6,由于Java6的jdk本身自带soap包,而自带的这个包的SoapMessage接口对setProperty方法又强制其实现类要override自身,否则则抛出上述异常”。

解决方法
(1)网上提供的解决方法(未解决问题):
将Jboss\lib下的几个包拷贝到Jboss\lib\endorsed下
   jboss-jaxrpc.jar
   jboss-jaxws.jar
   jboss-jaxws-ext.jar
   jboss-saaj.jar
   jaxb-api.jar
但没能解决问题,已然包上面的错。

(2)自己的解决方法(成功)
既然Jboss的webservice  包跟 jdk1.6的包不兼容,而且我本意是用要jdk1.6的webservice,所以索性将jboss里跟webservice的jar包去掉。 结果验证成功。(唉,搞了我好几天...)
去掉的包:
   jboss-jaxrpc.jar
   jboss-jaxws.jar
   jboss-jaxws-ext.jar
   jboss-saaj.jar
   jaxb-api.jar

猜你喜欢

转载自illy.iteye.com/blog/2092273