cxf restful
Restful 服务端
1 创建好pojo、dao、service, dao进行数据库操作,service提供服务
@Path("/roomservice")
@Produces("application/xml")
public class RoomService {
@GET
@Path("/room/{id}")
@Consumes("application/xml")
public Room getRoom(@PathParam("id")String id )
{
System.out.println("get room by id= "+id);
Room room=RoomDAO.getRoom(id);
return room;
}
@POST
@Path("/room")
@Consumes("application/xml")
public void addRoom(Room room)
{
...
通常需要使用注解: GET/POST/PUT/DELETE, Path, Consumes, 有参数的方法需要加上 @PathParam
2 通过JAXRSServerFactoryBean来发布服务 —— 一个类即可!
public class Server {
public static void main(String[] args) {
RoomService service = new RoomService();
// Service instance
JAXRSServerFactoryBean restServer = new JAXRSServerFactoryBean();
restServer.setResourceClasses(Room.class,Person.class,Room.class);
restServer.setServiceBean(service);
restServer.setAddress("http://localhost:9999/");
restServer.create();
}
}
restful 客户端
使用一个类即可:org.apache.cxf.jaxrs.client.WebClient ! 非常方便
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("");
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("");
client.path("roomservice/room/003").accept("application/xml").put(room);
}
}
总结:
服务端开发:
1 创建web项目
2 写好接口、实现类
3 通过与spring集成或者直接发布、或者启动server类
客户端开发:
1 根据服务器发布的服务,使用wsdl2java创建客户端代码stub
2 通过cxfapi访问,服务端的服务
参考
http://borissun.iteye.com/blog/765869
http://www.cnblogs.com/i-bugs/p/3755615.html
疑问:
如果是js端访问呢?
cxf restful的更多相关文章
- Apache CXF 102 CXF with REST
前言 续上篇Apache CXF 101,摘抄部分REST概念性知识,以运行实例考察CXF对REST的支持. 目录 1 REST简介 2 工具 3 运行实例 内容 本Spike记录中内容,如无特别指出 ...
- Spring整合CXF,发布RSETful 风格WebService(转)
Spring整合CXF,发布RSETful 风格WebService 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Sp ...
- Spring整合CXF,发布RSETful 风格WebService
原文地址:http://www.cnblogs.com/hoojo/archive/2012/07/23/2605219.html 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有 ...
- Maven + Apache Felix + CXF + DOSGi series
This is a blog series on how to combine Maven + Apache Felix + CXF + DOSGi. The information presente ...
- spring boot 项目搭建时,各个依赖的作用
项目搭建页面 https://start.spring.io/ 各个依赖的作用 List of dependencies for Spring Boot 2.1.5.RELEASE Core DevT ...
- cxf spring restful 问题解决(jar包冲突)
SEVERE: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error ...
- 用cxf开发restful风格的WebService
我们都知道cxf还可以开发restful风格的webService,下面是利用maven+spring4+cxf搭建webService服务端和客户端Demo 1.pom.xml <projec ...
- 【转】基于CXF Java 搭建Web Service (Restful Web Service与基于SOAP的Web Service混合方案)
转载:http://www.cnblogs.com/windwithlife/archive/2013/03/03/2942157.html 一,选择一个合适的,Web开发环境: 我选择的是Eclip ...
- cxf开发Restful Web Services
一.restful web services rest全称是Representation State Transfer(表述性状态转移).它是一种软件架构风格,只是提供了一组设计原则和约束条件.在re ...
随机推荐
- mvc+mysql+EF
网上有很多关于EF在联机情况下利用nuget管理器安装的案例,我就讲一下脱机状况吧! 一.建立一个文件夹,例如D:/Packages 放入安装EF和mysql需要的包:EntityFramework. ...
- UWP的拖拽功能
简单的拖拽实现: <Grid x:Name="G1" AllowDrop="True" DragEnter="G1_DragEnter" ...
- linux mysql操作命令
1.linux下启动mysql的命令:mysqladmin start/ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql的命令:mysqla ...
- 【树状数组套权值线段树】bzoj1901 Zju2112 Dynamic Rankings
谁再管这玩意叫树状数组套主席树我跟谁急 明明就是树状数组的每个结点维护一棵动态开结点的权值线段树而已 好吧,其实只有一个指针,指向该结点的权值线段树的当前结点 每次查询之前,要让指针指向根结点 不同结 ...
- gulp-rev-orig
给客户演示项目时,老是会出现由于缓存,造成的最新的样式或者效果出不来的情况,还得需要手动清除缓存操作,一方面呢,会给客户留下不好的印象,而且也会多了清缓存这一过程,和同事商量过后,决定使用在css或者 ...
- STL源码--序列式容器
1. vector: vector的内存管理,动态分配内存,不需要程序员来维护存储空间,是与array最大的区别,程序员只需从逻辑上关注代码,而不需要对内部的存储空间的分配和回收分心.首先,vecto ...
- poj1274(匈牙利算法)
The Perfect Stall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 22809 Accepted: 101 ...
- ArcGIS百米网格自动生成
最近需要用百米网格进行空间叠加分析,首先得自动生成百米网格数据.经过查找,发现ARCgis可以自动生成网格.方法如下 2.创建格网(Creat Fishnet).需要用到ArcGIS的ArcToolb ...
- <<数字是世界的>>读后感
我对这本书的第一印象就是很多书评中提到的,这是一本无论是否有学习过计算机专业知识的人都可以读的书.我一开始不是很能理解这些评价,我是抱着对这个问题的疑惑进行通读的,以后我发现了,它全书中都很少出现计算 ...
- 项目文件""已被重命名或已不在解决方案中
如题,这个错误在vs2010里,开始编译的时候出现了,我的解决办法就是把所有的project都移除,然后再添加进来,就不弹这个错误了.