MyEclipse开发REST Web Service
2016-01-25 11:44
656 查看
-基本开发环境-
操作系统: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 项目-
![](https://img-blog.csdn.net/20160125103149309?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
然后一路下点。
-创建Rest Web Service-
在创建Rest
Web Service的时候你将创建一些必须的用于管理的类,包括一个实体类和一个资源方法的类。
创建实体类:
![](https://img-blog.csdn.net/20160125103850249?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
修改其中的代码
创建Web Service的核心类-资源类
![](https://img-blog.csdn.net/20160125104427329?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160125104607163?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160125105118613?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
字段注释:
URL path:指明资源可以到达的路径,这里我们使用customers,因为这个资源管理的是customers
list。这个资源将被定位在“/customers”。
![](https://img-blog.csdn.net/20160125105655614?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Singleton Lifecycle:保证每一个web-application的Jersey只能创建一个类实例。
Consumes and Produce:用于指定resource接受和产生的默认的MIME类型的数据。但是这些值能够被类中的个别方法覆盖重写。因为之前我们选择的是application/xml的MIME类型,所以我们选择XML序列化。
为资源类添加方法
点击上一步的Add方法。添加资源类的方法。
![](https://img-blog.csdn.net/20160125110953804?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
继续添加方法
![](https://img-blog.csdn.net/20160125111252683?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
字段解释:
{id}:指定资源的方法到达的地址/customers/{id},大括号表示的是URI变量。
Method parameters:在这里你要使用的是URI路径上的id的值,因此在这里要使用PathParam注解将id的值匹配给资源类中的cId变量。
添加完方法后:
![](https://img-blog.csdn.net/20160125112547783?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
- 为生成的资源类方法提供实现 -
这个例子的实现很简单,当customers收到一个请求的service的时候,你就个实体类一个基础计数器ID,并将它加入map中。
Service项目 -
在这里一笔带过。
- 测试Rest Web Service项目 -
在浏览器中打开 http://localhost:<port>/<project name>/jaxrs/<your url
path>/0
![](https://img-blog.csdn.net/20160125114159002?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
后续:部分参考来自-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
操作系统: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注解
创建Web Service的核心类-资源类
字段注释:
URL path:指明资源可以到达的路径,这里我们使用customers,因为这个资源管理的是customers
list。这个资源将被定位在“/customers”。
Singleton Lifecycle:保证每一个web-application的Jersey只能创建一个类实例。
Consumes and Produce:用于指定resource接受和产生的默认的MIME类型的数据。但是这些值能够被类中的个别方法覆盖重写。因为之前我们选择的是application/xml的MIME类型,所以我们选择XML序列化。
为资源类添加方法
点击上一步的Add方法。添加资源类的方法。
继续添加方法
字段解释:
{id}:指定资源的方法到达的地址/customers/{id},大括号表示的是URI变量。
Method parameters:在这里你要使用的是URI路径上的id的值,因此在这里要使用PathParam注解将id的值匹配给资源类中的cId变量。
添加完方法后:
- 为生成的资源类方法提供实现 -
这个例子的实现很简单,当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
后续:部分参考来自-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
相关文章推荐
- Java关键字transient和volatile小结
- myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
- 浅析Java中CountDownLatch用法
- Java学习笔记九(泛型)
- spring4 学习4 spring MVC+mybatis+Mysql
- java中的引用和GC
- java中volatile关键字的含义
- spring4 学习4 spring MVC+mybatis+Mysql
- Java IO和Java NIO在文件拷贝上的性能差异分析
- java(十九)接口
- java基础篇--05<java集合>
- 那些你该了解的Spring子项目
- JAVA深入研究—— Method的Invoke方法
- spring配置计时器
- Spring MVC启动——initStrategies
- Java基础学习总结(28)——Java对各种排序算法的实现
- Java基础学习总结(28)——Java对各种排序算法的实现
- Java基础学习总结(28)——Java对各种排序算法的实现
- Java堆栈队列
- Java用axis2调用.net发布的web services接口