一、 总体说明

XML和JSON 是最为常用的数据交换格式。本例子演示如何将java对象,转成XML输出。

二、流程

1.在上文的例子中,创建一个包“com.waylau.rest.bean”

2.在该包下创建一个JAVA类"User"

  1. package com.waylau.rest.bean;
  2. import javax.xml.bind.annotation.XmlRootElement;
  3. /*
  4. * 用户 bean
  5. * @author waylau.com
  6. * 2014-3-17
  7. */
  8. @XmlRootElement
  9. public class User {
  10. private String userId;
  11. private String userName;
  12. private String age;
  13. public User() {};
  14. public User(String userId, String userName, String age) {
  15. this.userId = userId;
  16. this.userName = userName;
  17. this.age = age;
  18. }
  19. public String getUserId() {
  20. return userId;
  21. }
  22. public void setUserId(String userId) {
  23. this.userId = userId;
  24. }
  25. public String getUserName() {
  26. return userName;
  27. }
  28. public void setUserName(String userName) {
  29. this.userName = userName;
  30. }
  31. public String getAge() {
  32. return age;
  33. }
  34. public void setAge(String age) {
  35. this.age = age;
  36. }
  37. }
 

注意:该类上面增加了一个注解“@XmlRootElement”,在将该类转化成XML时,说明这个是XML的根节点。

3.在“com.waylau.rest.resources”中,增加资源“UserResource“,代码如下:

  1. package com.waylau.rest.resources;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import javax.ws.rs.Path;
  7. import javax.ws.rs.Produces;
  8. import javax.ws.rs.PathParam;
  9. import javax.ws.rs.core.MediaType;
  10. import javax.ws.rs.DELETE;
  11. import javax.ws.rs.GET;
  12. import javax.ws.rs.POST;
  13. import javax.ws.rs.PUT;
  14. import com.waylau.rest.bean.User;
  15. @Path("/users")
  16. public class UserResource {
  17. private static Map<String,User> userMap = new HashMap<String,User>();//存储用户
  18. /**
  19. * 查询所有
  20. * @return
  21. */
  22. @GET
  23. @Produces(MediaType.APPLICATION_XML)
  24. public List<User> getAllUsers(){
  25. List<User> users = new ArrayList<User>();
  26. User u1 = new User("001","WayLau","26");
  27. User u2 = new User("002","King","23");
  28. User u3 = new User("003","Susan","21");
  29. userMap.put(u1.getUserId(), u1);
  30. userMap.put(u2.getUserId(), u2);
  31. userMap.put(u3.getUserId(), u3);
  32. users.addAll( userMap.values() );
  33. return users;
  34. }
  35. @GET
  36. @Path("/getUserXml")
  37. @Produces(MediaType.APPLICATION_XML)
  38. public User getUserXml() {
  39. User user  = new User();
  40. user.setAge("21");
  41. user.setUserId("004");
  42. user.setUserName("Amand");
  43. return user;
  44. }
  45. }

其中MediaType.APPLICATION_XML 说明了是以XML形式输出

在浏览器输入http://localhost:8089/RestDemo/rest/users/getUserXml,输出单个对象

在浏览器输入 http://localhost:8089/RestDemo/rest/users  输出对象的集合

本文转自:http://blog.csdn.net/kkkloveyou/article/details/21415735

Jersey构建restful风格的WebSerivices(二)的更多相关文章

  1. Jersey构建Restful风格的webservices

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

  2. Jersey构建Restful风格的Webserivces(三)

    一.总体说明 通过jersey-client接口,创建客户端程序,来调用Jersey实现的RESTful服务,实现增.删.改.查等操作. 服务端主要是通过内存的方式,来模拟用户的增加.删除.修改.查询 ...

  3. 基于jersey和Apache Tomcat构建Restful Web服务(二)

    基于jersey和Apache Tomcat构建Restful Web服务(二) 上篇博客介绍了REST以及Jersey并使用其搭建了一个简单的“Hello World”,那么本次呢,再来点有趣的东西 ...

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

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

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

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

  6. 构建RESTful风格的WCF服务

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

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

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

  8. Spring Boot构建 RESTful 风格应用

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

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

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

随机推荐

  1. mydqldump

    [mydqldump] One way to create a snapshot of the data in an existing master database is to use the my ...

  2. 根据数组下标在MongoDB中修改数组元素

    如下图这样的数据: 即文档中某个字段是一个数组,而每个数组元素又是一个对象,现在需求是对每个对象中的content字段值作情感分析后,把情感分析得到的结果增加到这个对象中去. 如上图中第1个元素,修改 ...

  3. go语言中通过http访问需要认证的api

    func main() { //生成client 参数为默认 client := &http.Client{} //生成要访问的url url := "https://api.XXX ...

  4. 整合Struts2框架和Spring框架

    -----------------------siwuxie095                                 整合 Struts2 框架和 Spring 框架         1 ...

  5. python中的&&及||

    首先说明一下,在python中是没有&&及||这两个运算符的,取而代之的是英文and和or.其他运算符没有变动. 接着重点要说明的是python中的a.any(),我之所以会涉及到这个 ...

  6. 给乱序的链表排序 · Sort List, 链表重排reorder list LoLn...

    链表排序 · Sort List [抄题]: [思维问题]: [一句话思路]: [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入): [画图]: quick ...

  7. 使用Linux之安装jdk 7

    工具/原料   jdk7源码安装压缩包 方法/步骤     卸载OpenJDK rpm -qa | grep java rpm -e --nodeps java-1.6.0-openjdk-1.6.0 ...

  8. PAT 1034 有理数四则运算(20)(代码框架+思路+测试点错误分析)

    1034 有理数四则运算(20)(20 分)提问 本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照"a1/b1 a2/b2"的格式给出两个分数形式的 ...

  9. 大神真会玩~这组C4D动图,我都看了一整天!

    来自法国的Guillaume Kurkdjian 擅长创作一些平面动态图像 每张都诉说了一个小笑话或者小故事 像个极其微型的小电影. 这些动图的灵感可能来自某个交通工具 或是某个悠闲的时光 也可能是生 ...

  10. 那些你不知道的PS大片摄影

    你以为这张照片是P出来的? 才不是! 人家是开个起重机吊着拍的! 而且没有任何保护措施! 这样的照片战斗民族的摄影师才敢这样拍…要是在天朝这么做估计都找不到模特… 这张照片出自乌兹别克斯坦的摄影师Ra ...