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的更多相关文章

  1. Apache CXF 102 CXF with REST

    前言 续上篇Apache CXF 101,摘抄部分REST概念性知识,以运行实例考察CXF对REST的支持. 目录 1 REST简介 2 工具 3 运行实例 内容 本Spike记录中内容,如无特别指出 ...

  2. Spring整合CXF,发布RSETful 风格WebService(转)

    Spring整合CXF,发布RSETful 风格WebService 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Sp ...

  3. Spring整合CXF,发布RSETful 风格WebService

    原文地址:http://www.cnblogs.com/hoojo/archive/2012/07/23/2605219.html 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有 ...

  4. Maven + Apache Felix + CXF + DOSGi series

    This is a blog series on how to combine Maven + Apache Felix + CXF + DOSGi. The information presente ...

  5. spring boot 项目搭建时,各个依赖的作用

    项目搭建页面 https://start.spring.io/ 各个依赖的作用 List of dependencies for Spring Boot 2.1.5.RELEASE Core DevT ...

  6. cxf spring restful 问题解决(jar包冲突)

    SEVERE: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error ...

  7. 用cxf开发restful风格的WebService

    我们都知道cxf还可以开发restful风格的webService,下面是利用maven+spring4+cxf搭建webService服务端和客户端Demo 1.pom.xml <projec ...

  8. 【转】基于CXF Java 搭建Web Service (Restful Web Service与基于SOAP的Web Service混合方案)

    转载:http://www.cnblogs.com/windwithlife/archive/2013/03/03/2942157.html 一,选择一个合适的,Web开发环境: 我选择的是Eclip ...

  9. cxf开发Restful Web Services

    一.restful web services rest全称是Representation State Transfer(表述性状态转移).它是一种软件架构风格,只是提供了一组设计原则和约束条件.在re ...

随机推荐

  1. 使用C#代码部署SharePoint 2013开发包简单总结(一)

    这篇文章将总结下如何将自己开发的列表.Web部件.事件接收器等元素部署到SharePoint的服务器.因水平有限,我的做法未必是最佳实践,会有些错误理解和疏漏,欢迎各位高手批评指正——但一定要能给出更 ...

  2. Oracle学习指南

    Oracle学习指南 你走的那天,我决定不落泪,迎着风撑着眼帘用力不眨眼 创建数据库.创建用户.创建表空间.创建表.插入数据..... 1.用系统用户登录,任选系统用户 代码: >>sql ...

  3. IIS出现问题时修改配置文件的几项说明

    近期系统在线运行经常出现object moved错误 通过查询资料,做了几项web.config文件的调整 1,调整应用程序池使用集成模式      <system.webServer>  ...

  4. Centos7.2 yum配置

    一.yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器.起初是由yellow dog 这一发行版的 ...

  5. Mini projects #5 ---- Memory

    课程全名:An Introduction to Interactive Programming in Python,来自 Rice University 授课教授:Joe Warren, Scott ...

  6. Xcode调用旧版本库出现Undefined symbols for architecture x86_64: ld: symbol(s) not found for architecture x86_64

    问题:Undefined symbols for architecture x86_64:   ld: symbol(s) not found for architecture x86_64 问题原因 ...

  7. iOS进阶_地图上定位的标志——大头针

    一.添加大头针 地图使用的框架是MapKit 大头针走的是MKAnnotation协议 /* 注意:因为是满足协议MKAnnotation,所以没有MKAnnotation的系统大头针类,必须自定义大 ...

  8. cowboy学习笔记(安装与部署)

    安装cowboy,参照官方文档:http://ninenines.eu/docs/en/cowboy/1.0/guide/getting_started/ 添加依赖库:在makefile中添加,会自动 ...

  9. tesseract-ocr 提高验证码识别率手段之---识别码库训练方法

    本文是对tesseract-ocr 使用的进一步技术升级说明,使用默认的识别库识别率比较低怎么办? 不用着急,tesseract-ocr本身的工具中提供了使用你提供的素材进行人工修正以提高识别率的方法 ...

  10. 自定义struts实现

    一:struts2运行机制: Tomcat一启动,一些信息就已经加载完成,例如StrutsPrepareAndExecuteFilter加载的那些strut.xml以及Action的class类文件 ...