MyEclipse开发REST Web Service

-基本开发环境-

操作系统: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 项目-

MyEclipse开发REST Web Service_第1张图片

然后一路下点。

-创建Rest Web Service-

在创建Rest Web Service的时候你将创建一些必须的用于管理的类,包括一个实体类和一个资源方法的类。

  • 创建实体类:

MyEclipse开发REST Web Service_第2张图片

修改其中的代码

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注解

  • 创建Web Service的核心类-资源类



MyEclipse开发REST Web Service_第3张图片

字段注释:

URL path:指明资源可以到达的路径,这里我们使用customers,因为这个资源管理的是customers list。这个资源将被定位在“/customers”。


Singleton Lifecycle:保证每一个web-application的Jersey只能创建一个类实例。

Consumes and Produce:用于指定resource接受和产生的默认的MIME类型的数据。但是这些值能够被类中的个别方法覆盖重写。因为之前我们选择的是application/xml的MIME类型,所以我们选择XML序列化。

  • 为资源类添加方法
点击上一步的Add方法。添加资源类的方法。
MyEclipse开发REST Web Service_第4张图片
继续添加方法

字段解释:
{id}:指定资源的方法到达的地址/customers/{id},大括号表示的是URI变量。
Method parameters:在这里你要使用的是URI路径上的id的值,因此在这里要使用PathParam注解将id的值匹配给资源类中的cId变量。
添加完方法后:
MyEclipse开发REST Web Service_第5张图片
- 为生成的资源类方法提供实现 -
这个例子的实现很简单,当customers收到一个请求的service的时候,你就个实体类一个基础计数器ID,并将它加入map中。
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项目  -
  在这里一笔带过。
- 测试Rest Web Service项目 -
在浏览器中打开 http://localhost:<port>/<project name>/jaxrs/<your url path>/0 
MyEclipse开发REST Web Service_第6张图片



后续:部分参考来自-http://www.myeclipsecn.com/learningcenter/web-services/rest-web-services-tutorial/
http://www.ibm.com/developerworks/cn/web/wa-jaxrs/
http://www.ibm.com/developerworks/cn/webservices/1102_mace_restservicePart3/1102_mace_restservicePart3.html
http://www.ibm.com/developerworks/cn/webservices/1008_sucb_webservicesdevel/
http://www.importnew.com/8939.html

你可能感兴趣的:(Web,MyEclipse,service,REST,J2EE)