一、总体说明

通过jersey-client接口,创建客户端程序,来调用Jersey实现的RESTful服务,实现增、删、改、查等操作。

服务端主要是通过内存的方式,来模拟用户的增加、删除、修改、查询等操作。

二、创建服务端

1.在上文项目中,

在“com.waylau.rest.resources.UserResource“中修改代码,

首先创建一个HashMap,用来保存添加的用户

  1. private static Map<String,User> userMap  = new HashMap<String,User>();
private static Map<String,User> userMap  = new HashMap<String,User>();

2.创建增、删、改、查 用户资源等操作

/**
* 增加
* @param user
*/
@POST
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public void createStudent(User user)
{
userMap.put(user.getUserId(), user );
} /**
* 删除
* @param id
*/
@DELETE
@Path("{id}")
public void deleteStudent(@PathParam("id")String id){
userMap.remove(id);
} /**
* 修改
* @param user
*/
@PUT
@Consumes(MediaType.APPLICATION_XML)
public void updateStudent(User user){
userMap.put(user.getUserId(), user );
} /**
* 根据id查询
* @param id
* @return
*/
@GET
@Path("{id}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public User getUserById(@PathParam("id") String id){
User u = userMap.get(id);
return u;
} /**
* 查询所有
* @return
*/
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<User> getAllUsers(){
List<User> users = new ArrayList<User>();
users.addAll( userMap.values() );
return users;
}

三、创建客户端程序

1.创建包“com.waylau.rest.client”,在包下建一个UserClient.java,代码如下:

四、运行

启动服务端项目,运行客户端程序UserClient,控制台输出如下

  1. ****增加用户addUser****
  2. ****查询所有getAllUsers****
  3. [{"userId":"006","userName":"Susan","age":"21"}]
  4. ****修改用户updateUser****
  5. ****根据id查询用户****
  6. 006Susan33
  7. ****查询所有getAllUsers****
  8. [{"userId":"006","userName":"Susan","age":"33"}]
  9. ****删除用户****
  10. ****查询所有getAllUsers****
  11. []
****增加用户addUser****
****查询所有getAllUsers****
[{"userId":"006","userName":"Susan","age":"21"}]
****修改用户updateUser****
****根据id查询用户****
006Susan33
****查询所有getAllUsers****
[{"userId":"006","userName":"Susan","age":"33"}]
****删除用户****
****查询所有getAllUsers****
[]

五、总结

1.客户端如果需要进行JSON转换,需要进行JSON注册

  1. Client client = ClientBuilder.newClient().register(JacksonJsonProvider.class);
 Client client = ClientBuilder.newClient().register(JacksonJsonProvider.class);

2.WebTarget 指明了要请求的资源的地址

3.target.request(). 后面跟的是请求的方法:POST,GET,PUT或DELETE

转自:http://blog.csdn.net/kkkloveyou/article/details/21517165

Jersey构建Restful风格的Webserivces(三)的更多相关文章

  1. Jersey构建Restful风格的webservices

    最近一直在搞老项目的开发工作,很少写博文了.听了两位阿里巴巴大牛的讨论,决定试试用restful风格的webservices看看. 这里用的是Jersey这个框架,刚开始弄,有点麻烦,只能到处查资料. ...

  2. Jersey构建restful风格的WebSerivices(二)

    一. 总体说明 XML和JSON 是最为常用的数据交换格式.本例子演示如何将java对象,转成XML输出. 二.流程 1.在上文的例子中,创建一个包“com.waylau.rest.bean” 2.在 ...

  3. lucene构建restful风格的简单搜索引擎服务

    来自于本人博客: lucene构建restful风格的简单搜索引擎服务 本人的博客如今也要改成使用lucene进行全文检索的功能,因此在这里把代码贴出来与大家分享 一,文件夹结构: 二,配置文件: 总 ...

  4. 用Jersey构建RESTful服务7--Jersey+SQLServer+Hibernate4.3+Spring3.2

    一.整体说明 本例执行演示了用 Jersey 构建 RESTful 服务中.怎样集成 Spring3 二.环境 1.上文的项目RestDemo 2.Spring及其它相关的jar ,导入项目 三.配置 ...

  5. 构建RESTful风格的WCF服务

    构建RESTful风格的WCF服务 RESTful Wcf是一种基于Http协议的服务架构风格. 相较 WCF.WebService 使用 SOAP.WSDL.WS-* 而言,几乎所有的语言和网络平台 ...

  6. SpringMVC 构建Restful风格 及问题处理

    基本的请求URL: /person/{id}  GET  得到id的person /person POST      新增person /person/{id}  PUT  更新id的person / ...

  7. Spring Boot构建 RESTful 风格应用

    Spring Boot构建 RESTful 风格应用 1.Spring Boot构建 RESTful 风格应用 1.1 实战 1.1.1 创建工程 1.1.2 构建实体类 1.1.4 查询定制 1.1 ...

  8. Spring Boot2 系列教程(三十一)Spring Boot 构建 RESTful 风格应用

    RESTful ,到现在相信已经没人不知道这个东西了吧!关于 RESTful 的概念,我这里就不做过多介绍了,传统的 Struts 对 RESTful 支持不够友好 ,但是 SpringMVC 对于 ...

  9. SpringBoot实战(一)之构建RestFul风格

    RestFul风格是一种非常流行的架构风格,相关实战可以参考我的这篇博客:SSM框架之RestFul示例 论文可参考:https://www.ics.uci.edu/~fielding/pubs/di ...

随机推荐

  1. java 注解 基本原理 编程实现

    摘要: java 1.5开始引入了注解和反射,正确的来说注解是反射的一部分,没有反射,注解无法正常使用,但离开注解,反射依旧可以使用,因此来说,反射的定义应该包含注解才合理一些. java 1.5开始 ...

  2. Maven(一)——Maven入门

    一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1. ...

  3. 关于访问asp.net网站时登录后的奇怪问题

    登录后,地址栏地址变成了 http://www.XXXX.com/(F(HDc3otfFs0wkZu4P4CjZ50Qkck2q8aekR3g6F0m_NRZRo7kt7XQ6CjAFBR4PR8kZ ...

  4. iOS - swift项目接入bugly - 报错, 配置符号表,下载Java环境,

    1.pod 安装,无需配置任何东西 2.终端找到路径: pod install 3.在 appdelegate 导入  import Bugly extension AppDelegate{ /// ...

  5. php5.4 trait 理解与学习

    Trait 是 php5.4引入的新特性,手册上说的一大段没看懂,这里直接来过来. Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制.Trait 为了减少单继承语言的限制,使开发人员 ...

  6. dede5.7 GBK 在php5.4环境下 后台编辑器无法显示文章内容

    问题的原因是:是htmlspecialchars,PHP 5.4后GBK编码下默认不支持中文,转换后内容为空,UTF-8编码没有任何问题.   解决方法如下: 在\include\ckeditor\c ...

  7. jDeveloper运行慢

    最近在使用 Jdeveloper 10.1.3.3 版本时发现速度奇慢无比,后经Google,发现如下解决方案:在 jdev.conf 文件的末尾加上如下两行,速度即可得到显著的提高. AddVMOp ...

  8. Django之XSS攻击

    一.什么是XSS攻击 xss攻击:----->web注入    xss跨站脚本攻击(Cross site script,简称xss)是一种“HTML注入”,由于攻击的脚本多数时候是跨域的,所以称 ...

  9. advance shading——菲涅耳现象

    (计算光照的时候,从两点出发考虑,光的传播方向,以及光的在这个方向上的能量.) 光与表面交互的模型包含两类:和物体表面(surface)以及和物体的内部(body).而subsurface指的是在物体 ...

  10. 在Ubuntu上安装boost库[转]

    在编译kenlm的时候需要安装boost,去官网下载boost安装包,然后按照以下步骤安装. boost官网 -----------------以下内容,网上转载------------------- ...