CXF发布restful WebService的入门例子(客户端)
上篇说了怎么用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/ 查看结果。
转自 http://borissun.iteye.com/blog/766029
CXF发布restful WebService的入门例子(客户端)的更多相关文章
- CXF发布restful WebService的入门例子(服务器端)
研究了两天CXF对restful的支持. 现在,想实现一个以 http://localhost:9999/roomservice 为入口, http://localhost:9999/roomse ...
- SSH集成cxf 发布restful webservice
首先讲一下什么是restful webservice ,这个问题网上一搜有很多博文去长篇大论的介绍它,但是最后你看完了也会觉得云里雾里的,所以我在这里简单的讲一下我理解的rest webservice ...
- 开发基于CXF的 RESTful WebService web 项目 webservice发布
配置步骤 开发基于CXF的 RESTful WebService 1.创建Web项目并导入CXF的jar 2.在Web.xml中配置 CXFServlet <servlet> <se ...
- Java 使用httpclient Post与cxf 发布的Webservice通信
使用cxf发布的webservice不知道什么情况总会有时管用有时不管用,对于项目来说这肯定不行.又不想改动webservice因为代码太多.人懒! 于是便使用httpclient与webservic ...
- Eclipse + Apache Axis2 发布RESTful WebService(三)第一个程序Hello Axis2 !(未成功)
此路不通 Axis2发布SOAP WebService非常简单,建一个Dynamic Web Project,然后为它建一个Axis的Web Service(Tomcat7+JDK),就会生成Clas ...
- webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成
首先到CXF官网及spring官网下载相关jar架包,这个不多说.webservice是干嘛用的也不多说. 入门例子 模拟新增一个用户,并返回新增结果,成功还是失败. 大概的目录如上,很简单. Res ...
- Eclipse + Jersey 发布RESTful WebService(一)了解Maven和Jersey,创建一个WS项目(成功!)
一.下文中需要的资源地址汇总 Maven Apache Maven网站 http://maven.apache.org/ Maven下载地址: http://maven.apache.org/down ...
- 使用CXF发布的WebService报错:org.apache.cxf.interceptor.Fault: The given SOAPAction does not match an operation
场景:JAVA语言使用CXF搭建WebService发布报错 错误信息:org.apache.cxf.interceptor.Fault: The given SOAPAction does not ...
- Eclipse + Apache Axis2 发布RESTful WebService(一)基础知识
1.什么是WebService 学习 WebService 第一步:体系结构.三元素SOAP/WSDL/UDDI 2.什么是Axis2 Axis2是Apache一套崭新的WebService引擎(框架 ...
随机推荐
- C++ Primer : 第二章:变量和基本类型(1)
变量和基本类型之第一篇:基本内置类型和变量 一. (1) C++定义了一套包括算数类型和空类型,这些类型有:布尔类型bool,字符类型char,宽字符类型wchar_t,Unicode字符char16 ...
- pthread_join和pthread_detach的用法(转)
一:关于join join join是三种同步线程的方式之一.另外两种分别是互斥锁(mutex)和条件变量(condition variable). 调用pthread_join()将阻塞自己,一直到 ...
- Android Studio 使用教程
http://www.tuicool.com/articles/amMvM3B 用 Android Studio 开发安卓 APP-使用篇 http://ask.android-studio.org/ ...
- InnoDB Double write
记得刚开始看InnoDB文档的时候,Double Write一节(其实只有一小段)就让我很困惑.无奈当时内力太浅,纠缠了很久也没弄明白.时隔几个月,重新来整理一下. 涉及到的概念:Buffer Poo ...
- 防止浏览器拦截的window.open新窗口方案
背景 当前的浏览器为了保证用户体验,在很多场合下禁止了window.open打开新窗口,下面就给出一些方案,最大程度上的实现新窗口打开一个链接. 方案 //打开新链接方法实现 function win ...
- linq字符串搜索条件,排序条件-linq动态查询语句 Dynamic LINQ
在做搜索和排序的时候,往往是前台传过来的字符串做条件,参数的数量还不定,这就需要用拼sql语句一样拼linq语句.而linq语句又是强类型的,不能用字符串拼出来. 现在好了,有个开源的linq扩展方法 ...
- Python_进程、线程及协程
一.Python进程 IO密集型----多线程 计算密集型----多进程 1.单进程 from multiprocessing import Process def foo(i): print('你好 ...
- linux概念之性能调优
目前,对系统进行性能调试的工具有很多,这些可以两大类:一类是标准的分析工具,即所有的UNIX都会带的分析工具: 另一类是不同厂商的UNIX所特有的性能分析工具,比如HP-UX就有自己的增值性能分析工具 ...
- wikioi 1204 寻找子串位置
/*======================================================================== 1204 寻找子串位置 题目描述 Descript ...
- html初学(一)
学习了一些html的基本用法,代码和效果如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8 ...