-基本开发环境-
操作系统:Windows7 64位
开发工具:MyEclipse Professional 2014
J2EE版本:JavaEE 6 version
服务器:Tomcat 8.X
JDK:1.6
JAX-RS:1.1
- 名词解释-
JAX-RS:JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services。
Jersey:Jersey 是 JAX-RS 的参考实现,它包含三个主要部分:核心服务器、核心客户端、集成(集成Spring、Guice)。
Jackson:可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象(简单易用性能高)。
json-lib:可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象。
-创建Rest Web Service 项目-
然后一路下点。
-创建Rest Web Service-
在创建Rest Web Service的时候你将创建一些必须的用于管理的类,包括一个实体类和一个资源方法的类。
修改其中的代码
package com.myeclipseide.ws; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class Customer { private int id; private String name; private String address; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }注:在这里我们使用的是XML序列化格式,因此使用的是@XMLRootElement注解
字段注释:
URL path:指明资源可以到达的路径,这里我们使用customers,因为这个资源管理的是customers list。这个资源将被定位在“/customers”。
Singleton Lifecycle:保证每一个web-application的Jersey只能创建一个类实例。
Consumes and Produce:用于指定resource接受和产生的默认的MIME类型的数据。但是这些值能够被类中的个别方法覆盖重写。因为之前我们选择的是application/xml的MIME类型,所以我们选择XML序列化。
package com.myeclipseide.ws; import java.util.ArrayList; import java.util.List; import java.util.TreeMap; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import com.sun.jersey.spi.resource.Singleton; @Produces("application/xml") @Path("customers") @Singleton public class CustomersResource { private TreeMap<Integer, Customer> customerMap = new TreeMap<Integer, Customer>(); public CustomersResource() { // hardcode a single customer into the database for demonstration // purposes Customer customer = new Customer(); customer.setName("Harold Abernathy"); customer.setAddress("Sheffield, UK"); addCustomer(customer); } @GET public List<Customer> getCustomers() { List<Customer> customers = new ArrayList<Customer>(); customers.addAll(customerMap.values()); return customers; } @GET @Path("{id}") public Customer getCustomer(@PathParam("id") int cId) { return customerMap.get(cId); } @POST @Path("add") @Produces("text/plain") @Consumes("application/xml") public String addCustomer(Customer customer) { int id = customerMap.size(); customer.setId(id); customerMap.put(id, customer); return "Customer " + customer.getName() + " added with Id " + id; } }- 部署Web Service项目 -