CXF发布restful WebService的入门例子(客户端)
2015-10-10 13:02
555 查看
文章来源:http://www.cnblogs.com/ggjucheng/p/3352494.html
上篇说了怎么用cxf发布restful webservice,由于浏览器只能对该service发送http的GET请求,所以如果想对服务器上的数据,还需要实现客户端。
客户端的实现方式有无数种。。。可以是.net,c++,还有很多java框架甚至socket。这里用cxf给的一个WebClient类来实现:
这个类用起来很简单,给WebClient的静态方法create一个参数,该参数是服务器地址的字符串。
这句代码,是告诉client要访问的restful资源,以及格式,最后的get,也就是对这个资源发送一个http GET请求,参数Room.class是告诉client要以什么方式接受服务器发送来的response。(服务器端和客户端的格式应该一致,所以这里用的和服务器端用的是一个POJO,如果客户端不是用CXF,那么应该定义一个scheme,这样才能让双方明白来回发送的XML应该怎么处理,暂时也没深入,回头再研究。)
DELETE方法很好理解,就是把你指定的资源删除掉,所以delete()不用带参数。
POST,PUT方法有点不同,
第一参数是你要传给服务器的POJO,第二个参数是告诉client要将server返回的response转化为的POJO的类型。第二个参数可以不写,如果不写,收到的将是一个response。
调用这些操作后,可以通过http://localhost:9999/roomservice/room/ 查看结果。
转自 /article/4409549.html
上篇说了怎么用cxf发布restful webservice,由于浏览器只能对该service发送http的GET请求,所以如果想对服务器上的数据,还需要实现客户端。
客户端的实现方式有无数种。。。可以是.net,c++,还有很多java框架甚至socket。这里用cxf给的一个WebClient类来实现:
package com.client; import org.apache.cxf.jaxrs.client.WebClient; import com.DAO.Room; public class Client { static WebClient client; public static void main(String[] args) { client = WebClient.create("http://localhost:9999/"); put(); } static void get() { Room room = client.path("roomservice/room/001") .accept("application/xml").get(Room.class); System.out.println("get the room which id is:" + room.getId()); } static void post() { Room room = new Room(); room.setId("003"); client.path("roomservice/room").accept("application/xml") .post(room, Room.class); } static void delete() { client.path("roomservice/room/002").accept("application/xml").delete(); } static void put() { Room room = new Room(); room.setId("006"); client.path("roomservice/room/003").accept("application/xml").put(room); } }
这个类用起来很简单,给WebClient的静态方法create一个参数,该参数是服务器地址的字符串。
client.path("roomservice/room/001").accept("application/xml").get(Room.class);
这句代码,是告诉client要访问的restful资源,以及格式,最后的get,也就是对这个资源发送一个http GET请求,参数Room.class是告诉client要以什么方式接受服务器发送来的response。(服务器端和客户端的格式应该一致,所以这里用的和服务器端用的是一个POJO,如果客户端不是用CXF,那么应该定义一个scheme,这样才能让双方明白来回发送的XML应该怎么处理,暂时也没深入,回头再研究。)
DELETE方法很好理解,就是把你指定的资源删除掉,所以delete()不用带参数。
POST,PUT方法有点不同,
post(Object body, Class<Room>) put(Object body, Class<Room>)
第一参数是你要传给服务器的POJO,第二个参数是告诉client要将server返回的response转化为的POJO的类型。第二个参数可以不写,如果不写,收到的将是一个response。
调用这些操作后,可以通过http://localhost:9999/roomservice/room/ 查看结果。
转自 /article/4409549.html
相关文章推荐
- iOS开展-clang: error: unknown argument: '-websockets'解决方案
- iOS流量监控
- 【C语言】模拟三次密码输入
- ios子控件超过了父控件的frame范围,超过的部分不显示
- web前端开发的点点滴滴---3.CSS介绍
- Gradle peer not authenticated
- CentOS6.5安装setuptools、pip和django
- 性能测试指标
- 初识jqgrid——参考文档
- 作为面试官之后的一些体会
- java简单实现webservice接口
- 黑马程序员_IO流
- vs中编写qt程序的代码提示
- js 设置cookie 读取cookie
- CXF发布restful WebService的入门例子(服务器端)
- 使用 CXF 做 webservice 简单例子
- week6---10月13日 CSS样式
- vs中编写qt程序的代码提示
- 无限循环菜单列表的实现
- 关于css的标准盒子模型