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

来源:互联网 发布:我是大美人 淘宝 编辑:程序博客网 时间:2024/06/05 22:44
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
0 0
原创粉丝点击