欢迎来到天天文库
浏览记录
ID:1238165
大小:162.50 KB
页数:9页
时间:2017-11-09
《用cxf开发restful风格webservice》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、用CXF开发RESTful风格WebService版本日期修改历史作者0.12011年6月27日文档创建陈操目录1RESTful简要介绍12开发一个普通的接口12.1定义DTO12.2定义接口22.3实现类23开发RESTful风格WebService服务端23.1定义资源(定义DTO)23.2开发接口33.3实现类43.4配置CXF(整合Spring)43.4.1接口的Spring配置文件43.4.2CXF的Spring配置文件43.4.3修改web.xml54开发RESTful风格WebService客户端(Java)54.1定义客户端接口54
2、.2定义实现类6第1页共1页机密–未经允许不得扩散1RESTful简要介绍RESTful风格的WebService之所以当下如此流行,是由于其相对于SOAP风格的WebService更简洁、更轻量级,REST风格的WebService传输的是JSON或极其简洁的XML,因而其效率和性能都比较理想。RESTful风格的WebService主张重用HTTP协议,面向资源编程(ROA)。扼要的说,RESTful风格WebService中,每一个URL即表示一个资源,比如http://www.example.com/employees/1表示id为1的员工
3、。1.如果对此URL调用HTTPGET方法,则返回员工的XML形式;2.如果对此URL调用HTTPPOST/PUT方法,则可以新增或者修改此员工;3.如果对此URL调用HTTPDELETE方法,则可以删除此员工;因此,我们在设计一个RESTful风格的接口时,一定要拥有面向资源设计的考量!此外,在实现接口的过程中,要遵循RESTful风格的几个特性,他们分别是:1.无状态性:HTTP本身即是无状态协议,因此RESTful天然的具备无状态性,具备优良的水平扩展能力!2.幂等性:GET/PUT/DELETE方法具备此特性,幂等性可概述为无论重复调用多少
4、次,其结果都一致!POST例外,不过设计的时候也可以按照此特性设计!3.唯一性:即URL地址要唯一的表示一个资源!关于事务、安全等更多的高级特性这里不阐述,有兴趣的可参考《RestfulWebService中文版》一书。下面以开发一个普通接口和开发REST风格WebService接口为对比,指导大家快速入门。2开发一个普通的接口2.1定义DTOpublicclassInfoimplementsSerializable{privateStringid;privateStringname;privateStringdescription;publicS
5、tringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id; 第7页共9页机密–未经允许不得扩散}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetDescription(){returndescription;}publicvoidsetDescription(Stringdescription){this.description=descripti
6、on;}}1.1定义接口publicinterfaceSaleServiceextendsSerializable{publicListgetInfos();publicInfogetInfo(Stringid);publicvoidsaveOrUpdateInfo(Infoinfo);publicvoiddeleteInfo(Stringid);}1.2实现类接口的实现,就此省略。2开发RESTful风格WebService服务端2.1定义资源(定义DTO)@XmlRootElement(name="Info")publicclass
7、InfoimplementsSerializable{privateStringid;privateStringname;privateStringdescription;@XmlElement(name="ID")publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}@XmlElement(name="NAME") 第7页共9页机密–未经允许不得扩散publicStringgetName(){returnname;}publicvoidsetName(Stringn
8、ame){this.name=name;}@XmlElement(name="DESCRIPTION")publicStr
此文档下载收益归作者所有