最近在用cxf开发WebService程序时遇到一个问题,就是客户端(client)调用时,传的参数到服务端(endpoint)就成了null,而服务端返回的值到客户端也是null。在网上搜了一下,遇到这个问题的人并不多,有几个提了问,没见到解答了的。最终在国外一个论坛上找到了答案。就是在接口的实现类上加上annotation:
在有的情况下不加targetNamespace这个注解是不会有问题的。
另外,在实现类上的@WebService()中最好也加上:endpointInterface,这样CXF就会根据你的接口开生成WSDL,否则你在实现类里写的别的public方法也会发布成WebService。
通过这次“麻烦”,感觉以前虽然也使用cxf,但从来没有深入了解过。通过这次解决问题,我想也有必要把以前零零碎碎了解的WebService相关的知识规整一下了。
@WebService(targetNamespace = "http://.......")
在有的情况下不加targetNamespace这个注解是不会有问题的。
另外,在实现类上的@WebService()中最好也加上:endpointInterface,这样CXF就会根据你的接口开生成WSDL,否则你在实现类里写的别的public方法也会发布成WebService。
通过这次“麻烦”,感觉以前虽然也使用cxf,但从来没有深入了解过。通过这次解决问题,我想也有必要把以前零零碎碎了解的WebService相关的知识规整一下了。