之前也有研究过CXF
大致了解使用CXF生成、发布服务端,客户端代码的调用
不过现在用起来还是感觉研究不够透彻
在项目使用中碰到如下几点需要研究的 ,可能大家也会在平时的开发中碰到,刚好在这做个汇总
1、nameSpace的定义
接口中的targetNamespace是必须要一致的 ,如 wsdl中定义的targetNamespace="http://service.ws.test.com" 。
一般情况下,我们就需要把接口定义在对应的包下com.test.ws.service
实现类的位置可以随意
特殊情况:如果wsdl中定义的namespace为"http://service.ws.test.com" ,但是我们自己的接口在 com.test.ws2.service下,咋办?
spring的注解可以解决这个问题,@WebService(targetNamespace = "http://service.ws.test.com/") 可以指定nameSpace。好像接口和实现类中都需要标注下,自己测试下吧
2、如接口中 public void getUser(String name);
首先这个字段名的大小写是区分的 ,你不可以定义为 String Name,因为请求消息体中XML是区分大小写的
或者接口 public void getUser2(User bean);
User中有 id 和name 两个属性。
如没有特殊情况,大小写一定要保持一致
特殊情况:大小写定义不一致了咋办?
在定义字段前加上注解
@XmlElement(name = "ID", required = true)
private String id;
不过加上注解后,就不可以有 getId()的方法,否则会报错。
解决办法:在getId()前加上 @XmlTransient注解,为不映射成XML的属性
另外一种特殊情况,a、需要指定 参数的顺序,如name必须在id之前 b、soap中的User(Bean)大小写的问题
注解:@XmlType(name = "User", propOrder = { "name", "id" })
3、服务端返回消息中如何带上消息头信息
4、客户端发送消息的时候如何带上消息头
5、客户端接受消息的时候如何解析消息头
6、服务端定义异常结构体
7、鉴权问题
8、超时策略
9、生成的接口方法名 定义不一致,比如soap协议中定义的是 public void GetTest();
不过你的接口中定义的是 getTest();
解决方法:可以在接口中使用注解 @WebMethod(operationName = "GetTest")
参考:
http://old.uplook.cn/biancheng/143/1433149/ CXF 详解
分享到:
相关推荐
这是我在使用cxf+spring进行开发中的一点总结,如何搭建开发环境、如何配置dao使用,如何解决乱码问题等的经验分享
cxf+spring实现webservice
CXF+spring+struts实现WebService
cxf+spring+client+springmvc
简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar...
cxf+spring+tomcat 只是演示,一个helloWorld的例子
内容为CXF整合spring的服务端和客户端开发例子,注释不太详尽,网上的教程比较多,但是多跑不起来,特地把整个工程都打包给大家做参考,程序内容均来自网上整理,均可以运行。
cxf+spring整合,只要把项目导入到myeclipse中,就可以运行。
CXF+Spring+Tomcat发布WebService
代码是我一行行敲的,直接部署就能用,service,client端实现了:(cxf用的是3.0最新的) 1维数组, 2维数组, 3维数组, List, List , Map(adapter方式实现的), 直接返回bean, 返回object[], 做了header的安全认证校验.
web项目使用spring和cxf的一个开发实例,有简单的代码样例和jar。是一个完整的项目,最终发布完成时访问 http://ip:port/项目名称/webservices/ 就会发现你发布的webservice服务。
cxf+spring开发所必备的jar包压缩包
基于maven的cxf+spring简单demo,spring版本为4.1.6,cxf版本为3.0.8
CXF+Spring+MyBatis+Maven项目整合,包含服务端和客户端。
这个是cxf 集成spring 的webservice的例子 供大家参考
cxf+spring开发webservice的简单实例,通过查看cfx的doc文档确定wsdl支持所引用的最少jar包
cxf+spring+hibernate整合添加功能实现修改版是对完整版的修正,有兴趣的同学可以下载研究一下。
基于CXF的WebService服务端和客户端示例,CXF+Spring,希望能为WebService开发者提供帮助。WebService,CXF,Spring.
使用cxf+spring框架开发webservice的客户端与服务端代码,用于连接两个项目
cxf+spring+hibernate集成整合jar包