webservice服务端是cxf, 客户端也是cxf。
今天客户端写的程序,调用服务端,出错。
修改方法:
第一种方法: 客户端请求,响应的对象定义要和 服务器端的包名,类名一致即可。
第二种方法: asm.jar不兼容, 换版本或直接去掉。
第三种: 用myeclipse生成jax-ws形式的 webservice client。 生成的包路径可以自己定。
第三种方法说明 , 客户端请求,响应的对象的包路径不一定要和服务器端一样。 所以 这和,cxf生成的wsdl中的 请求响应对象,及命名空间有关系,如果了解了这些就可以不用上面这些方法,也可以自己解决的。
终于解决了: 果然是命名空间的问题。 方法一: 在客户端接口类上加上命名空间,和服务器端一致。 方法二:在接口方法响应对象包装器注解里加上命名空间和服务器端响应对象一致。
-----------------------
Apache CXF一个开源的Service框架,它实现了JCP与Web Service中一些重要标准。CXF简化了构造,集成,面 向服务架构(SOA)业务组件与技术的灵活复用。在CXF中,Service使用WSDL标准定义并能够使用各种不同的消息 格式(或binding)和网络协议(transports)包括SOAP、XML(通过HTTP或JMS)进行访问。CXF同样支持多种model 如:JAX-WS,JBI,SCA和CORBA service。CXF设计成可灵活部署到各种容器中包括Spring-based,JBI,SCA, Servlet和J2EE容器。