简介
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
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-servlet</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey-version}</version>
</dependency>
<!-- Required only when you are using JAX-RS Client -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${jersey-version}</version>
</dependency>
基本步骤演示:
1.编写一个名为HelloResource的资源,它接受Http Get请求并响应
package com.lgy.resource;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.lgy.bean.Result;
@Path("hello")
public class HelloResource {
@Path("say")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String say() {
System.out.println("hello world");
return "hello world";
}
@Path("test")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Result<String> test() {
Result<String> result = new Result<String>();
result.success("aaaaaa");
return result;
}
}
2.编写JAX-RS application,并注册HelloResource
package com.lgy.config;
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.server.ResourceConfig;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import com.lgy.resource.HelloResource;
public class MyApplication extends ResourceConfig {
public MyApplication() {
//加载Resource
register(HelloResource.class);
//注册数据转换器
register(JacksonJsonProvider.class);
// Logging.
register(LoggingFilter.class);
}
}
3.在web.xml核心配置文件配置jersey servlet,随着容器的启动,项目进行启动
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>SpringApplication</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.lgy.config.MyApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringApplication</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
用tomcat或者jetty启动:localhots:8080/hello/say
项目源码(oschina git):https://git.oschina.net/fengchao111/restful-jersey.git