java jersey介绍

来源:互联网 发布:淘宝数据线 编辑:程序博客网 时间:2024/06/10 23:44

简介

Jersey是JAX-RS(JSR311)开源参考实现用于构建RESTful Web service,它包含三个部分:

  • 核心服务器(Core Server):通过提供JSR 311中标准化的注释和API标准化,可以用直观的方式开发RESTful Web服务。

  • 核心客户端(Core Client):Jersey客户端API能够帮助开发者与RESTful服务轻松通信;

  • 集成(Integration):Jersey还提供可以轻松继承Spring、Guice、Apache Abdera的库。

在项目中构架:


设置Jersey环境

Maven

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. <dependency>  
  2.             <groupId>org.glassfish.jersey.containers</groupId>  
  3.             <artifactId>jersey-container-grizzly2-servlet</artifactId>  
  4.             <version>${jersey-version}</version>  
  5.         </dependency>  
  6.   
  7.         <dependency>  
  8.             <groupId>org.glassfish.jersey.containers</groupId>  
  9.             <artifactId>jersey-container-servlet-core</artifactId>  
  10.             <version>${jersey-version}</version>  
  11.         </dependency>  
  12.   
  13.         <dependency>  
  14.             <groupId>org.glassfish.jersey.media</groupId>  
  15.             <artifactId>jersey-media-json-jackson</artifactId>  
  16.             <version>${jersey-version}</version>  
  17.         </dependency>  
  18.   
  19.         <!-- Required only when you are using JAX-RS Client -->  
  20.         <dependency>  
  21.             <groupId>org.glassfish.jersey.core</groupId>  
  22.             <artifactId>jersey-client</artifactId>  
  23.             <version>${jersey-version}</version>  
  24.         </dependency>  


基本步骤演示:

1.编写一个名为HelloResource的资源,它接受Http Get请求并响应

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. package com.lgy.resource;  
  2.   
  3. import javax.ws.rs.GET;  
  4. import javax.ws.rs.Path;  
  5. import javax.ws.rs.Produces;  
  6. import javax.ws.rs.core.MediaType;  
  7.   
  8. import com.lgy.bean.Result;  
  9.   
  10.   
  11. @Path("hello")  
  12. public class HelloResource {  
  13.     @Path("say")  
  14.     @GET  
  15.     @Produces(MediaType.TEXT_PLAIN)  
  16.     public String say() {  
  17.         System.out.println("hello world");  
  18.         return "hello world";     
  19.     }  
  20.       
  21.     @Path("test")  
  22.     @GET  
  23.     @Produces(MediaType.APPLICATION_JSON)  
  24.     public Result<String> test() {  
  25.         Result<String> result = new Result<String>();  
  26.         result.success("aaaaaa");  
  27.           
  28.         return result;  
  29.     }  
  30. }  

2.编写JAX-RS application,并注册HelloResource

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. package com.lgy.config;  
  2.   
  3. import org.glassfish.jersey.filter.LoggingFilter;  
  4. import org.glassfish.jersey.server.ResourceConfig;  
  5.   
  6. import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;  
  7. import com.lgy.resource.HelloResource;  
  8.   
  9. public class MyApplication extends ResourceConfig {  
  10.     public MyApplication() {  
  11.          //加载Resource  
  12.         register(HelloResource.class);  
  13.   
  14.         //注册数据转换器  
  15.         register(JacksonJsonProvider.class);  
  16.   
  17.         // Logging.  
  18.         register(LoggingFilter.class);  
  19.     }  
  20. }  

3.在web.xml核心配置文件配置jersey servlet,随着容器的启动,项目进行启动

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. <!DOCTYPE web-app PUBLIC  
  2.  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
  3.  "http://java.sun.com/dtd/web-app_2_3.dtd" >  
  4.   
  5. <web-app>  
  6.     <display-name>Archetype Created Web Application</display-name>  
  7.     <servlet>  
  8.         <servlet-name>SpringApplication</servlet-name>  
  9.         <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>  
  10.         <init-param>  
  11.             <param-name>javax.ws.rs.Application</param-name>  
  12.             <param-value>com.lgy.config.MyApplication</param-value>  
  13.         </init-param>  
  14.         <load-on-startup>1</load-on-startup>  
  15.     </servlet>  
  16.       
  17.     <servlet-mapping>  
  18.         <servlet-name>SpringApplication</servlet-name>  
  19.         <url-pattern>/*</url-pattern>  
  20.     </servlet-mapping>  
  21. </web-app>  

用tomcat或者jetty启动:localhots:8080/hello/say

项目源码(oschina git):https://git.oschina.net/fengchao111/restful-jersey.git

0 0
原创粉丝点击