用Jersey构建RESTful服务2--JAVA对象转成XML输出

简介:

一、 总体说明

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

二、流程

  • 1.在上文的例子中,创建一个包“com.waylau.rest.bean”
  • 2.在该包下创建一个JAVA类"User"
 package com.waylau.rest.bean; 
 import javax.xml.bind.annotation.XmlRootElement; 
 /* *
 * 用户 bean 
 * @author waylau.com 
 * 2014-3-17 
 */ @XmlRootElement public class User { 

 private String userId; 
 private String userName; 
 private String age; 

 public User() {}; 

 public User(String userId, String userName, String age) { 
 this.userId = userId; 
 this.userName = userName; 
 this.age = age; 
 } 
 public String getUserId() { 
 return userId; 
 } 
 public void setUserId(String userId) { 
 this.userId = userId; 
 } 
 public String getUserName() { 
 return userName; 
 } 
 public void setUserName(String userName) { 
 this.userName = userName; 
 } 
 public String getAge() { 
 return age; 
 } 
 public void setAge(String age) { 
 this.age = age; 
 } 
 } 

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

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

 import java.util.ArrayList; 
 import java.util.HashMap; 
 import java.util.List; 
 import java.util.Map; 

 import javax.ws.rs.Path; 
 import javax.ws.rs.Produces; 
 import javax.ws.rs.PathParam; 
 import javax.ws.rs.core.MediaType; 
 import javax.ws.rs.DELETE; 
 import javax.ws.rs.GET; 
 import javax.ws.rs.POST; 
 import javax.ws.rs.PUT; 

 import com.waylau.rest.bean.User; 

 @Path("/users") 
 public class UserResource { 
 private static Map<String,User> userMap = new HashMap<String,User>();//存储用户  /** 
 * 查询所有 
 * @return 
 */ @GET @Produces(MediaType.APPLICATION_XML) 
 public List<User> getAllUsers(){ 
 List<User> users = new ArrayList<User>(); 
 User u1 = new User("001","WayLau","26"); 
 User u2 = new User("002","King","23"); 
 User u3 = new User("003","Susan","21"); 

 userMap.put(u1.getUserId(), u1); 
 userMap.put(u2.getUserId(), u2); 
 userMap.put(u3.getUserId(), u3); 

 users.addAll( userMap.values() ); 
 return users; 
 } 

 @GET @Path("/getUserXml") 
 @Produces(MediaType.APPLICATION_XML) 
 public User getUserXml() { 
 User user = new User(); 
 user.setAge("21"); 
 user.setUserId("004"); 
 user.setUserName("Amand"); 
 return user; 
 } 
 } 

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

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

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

本章源码https://github.com/waylau/RestDemo/tree/master/jersey-demo2-xml

目录
相关文章
|
23天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
1月前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第30天】 随着Kotlin成为开发Android应用的首选语言,开发者社区对于其性能表现持续关注。本文通过深入分析与基准测试,探讨Kotlin与Java在Android平台上的性能差异,揭示两种语言在编译效率、运行时性能和内存消耗方面的具体表现,并提供优化建议。我们的目标是为Android开发者提供科学依据,帮助他们在项目实践中做出明智的编程语言选择。
|
30天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
在开发高性能的Android应用时,选择合适的编程语言至关重要。近年来,Kotlin因其简洁性和功能性受到开发者的青睐,但其性能是否与传统的Java相比有所不足?本文通过对比分析Kotlin与Java在Android平台上的运行效率,揭示二者在编译速度、运行时性能及资源消耗方面的具体差异,并探讨在实际项目中如何做出最佳选择。
18 4
|
8天前
|
消息中间件 存储 安全
从零开始构建Java消息队列系统
【4月更文挑战第18天】构建一个简单的Java消息队列系统,包括`Message`类、遵循FIFO原则的`MessageQueue`(使用`LinkedList`实现)、`Producer`和`Consumer`类。在多线程环境下,`MessageQueue`的操作通过`synchronized`保证线程安全。测试代码中,生产者发送10条消息,消费者处理这些消息。实际应用中,可能需要考虑持久化、分布式队列和消息确认等高级特性,或者使用成熟的MQ系统如Kafka或RabbitMQ。
|
9天前
|
消息中间件 存储 Java
深度探索:使用Apache Kafka构建高效Java消息队列处理系统
【4月更文挑战第17天】本文介绍了在Java环境下使用Apache Kafka进行消息队列处理的方法。Kafka是一个分布式流处理平台,采用发布/订阅模型,支持高效的消息生产和消费。文章详细讲解了Kafka的核心概念,包括主题、生产者和消费者,以及消息的存储和消费流程。此外,还展示了Java代码示例,说明如何创建生产者和消费者。最后,讨论了在高并发场景下的优化策略,如分区、消息压缩和批处理。通过理解和应用这些策略,可以构建高性能的消息系统。
|
17天前
|
XML JSON JavaScript
Java中XML和JSON的比较与应用指南
本文对比了Java中XML和JSON的使用,XML以自我描述性和可扩展性著称,适合结构复杂、需验证的场景,但语法冗长。JSON结构简洁,适用于轻量级数据交换,但不支持命名空间。在Java中,处理XML可使用DOM、SAX解析器或XPath,而JSON可借助GSON、Jackson库。根据需求选择合适格式,注意安全、性能和可读性。
26 0
|
23天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
23天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发
|
29天前
|
安全 API 开发者
构建高效可扩展的RESTful API服务
在数字化转型的浪潮中,构建一个高效、可扩展且易于维护的后端API服务是企业竞争力的关键。本文将深入探讨如何利用现代后端技术栈实现RESTful API服务的优化,包括代码结构设计、性能调优、安全性强化以及微服务架构的应用。我们将通过实践案例分析,揭示后端开发的最佳实践,帮助开发者提升系统的响应速度和处理能力,同时确保服务的高可用性和安全。
29 3
|
1月前
|
XML Java 数据格式
使用java解析XML文件的步骤
使用java解析XML文件的步骤
10 0