MyEclipse 在线订购年终抄底促销!火爆开抢>>
使用MyEclipse开发RESTWeb服务来放大您的Web应用程序。在本教程示例中,您将创建一个简单的Web服务来维护客户列表。你将学会:
没有MyEclipse? 立即下载
REST Web服务项目向导使您能够开始项目配置。


有了项目,就可以创建Web服务了。您将创建管理客户实体所需的类和资源方法的类。
这个简单的Customer类包含id、name和地址字段,并且表示使用Web服务管理的Customer实体。

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作为序列化格式,即使用XML从Web服务发送和接收客户实体。
Customer类中的@ XMLROOTE元素注释是一个JAXB注释,允许JAXB将这个实体从Java转换为XML并返回。可以对类中的字段和方法进行注释以定制序列化,但是对于本教程,JAXB默认设置是可以的。








现在,您需要为您使用向导创建的方法提供实现。在真实的应用程序中,此时您可能使用JPA或Hibernate连接数据库,以帮助管理客户列表,但是对于本教程来说,简单的内存映射就足够了。
实现很简单;当服务接收到客户时,您给实体一个基于计数器的id,并将其添加到映射。通过id从这个映射中检索客户并提供客户列表非常简单,如下所示。
使用以下代码替换CustomersResource类中的内容。注意类和方法签名没有改变。您正在用服务的实现充实生成的存根。为了演示的目的,您还向列表中添加了一个客户。
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服务的最快的方法是使用Run As或Debug As MyEclipse Server Application操作。


MyEclipse执行以下步骤:
MyEclipse Web Browser打开Web服务应用程序的默认index.jsp页面。您不需要它,因为您没有测试网页,所以可以关闭此视图。
REST Web服务资源管理器在MyEclipse标准订阅级别不可用。如果您是MyEclipse标准订户,请按照使用标准浏览器测试Web服务的说明操作。




<customer>
<name>Bill Adama</name>
<address>Vancouver, Canada</address>
</customer>

