开发Web Service并不是很难,但是没有好的例子,网上的一些例子都过于简单,做一个DEMO样的可以跑起来的Web Service确实不难,但是要开发一个真正实用的还是需要花些功夫的。
这个是最近遇到的一个问题,原因就是那些需要Model的Annotation使用不当,在类上面使用了XmlAccessType,然后在getter上也使用了XmlElement,在使用stub的方式作为客户端的时候没有问题,但是使用JAX-WS的方式调用的时候就出现标题中的错误。
这个问题解决后,调用没有问题,也能返回一个对象,但是对象的所有属性全部为null,需要继续解决。
到目前位置,已经使用了下面的Client方式,或多或少存在问题,只有使用stub的方式最好(根据wsdl生成代码)
- JaxWsProxyFactoryBean,调用成功,但是返回对象为空,和直接的JAX-WS一样
- ClientProxyFactoryBean,调用失败,Service的方法的名称加了Annotation定义,但是从生成的SOAP信息看,是使用的arg0,arg1这样的形式,所以到Server端以后参数都为null,调用失败
- 直接JAX-WS(javax.xml.ws.Service),和第一个一样