最近公司项目在用jersey做api接口,遂来学习一下,学习的第一步,先运行起来一个项目,也就是环境配置好.
1.环境配置
对于IDEA来说可以直接引用包方式建立,这样的话在新建项目的时候勾选上WEB Application和RESTFUL WEB Service两个选项即可,不过maven流行起来,博主选择使用maven建立.
在pom.xml中引入:
<!--jersey-->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.6</version>
</dependency>
这里要说明下,2.x之后的jerser都归入glassfish下面了,以前的org.sun那个用的比较少了.引入后可以使用IDEA查看maven关系图,你会发现引入这的这个坐标包含了基本开发的全部依赖.
2.编写helloworld
package cn.mrdear.controller;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
/** * @author Niu Li * @date 2016/7/24 */
@Path("/hello")
public class HelloWorldController {
@GET
@Produces(MediaType.TEXT_PLAIN)//指定返回类型为text_plain
public String helloWorld(){
return "hello world!";
}
}
3.编写Application
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.server.ResourceConfig;
/** * @author Niu Li * @date 2016/7/24 */
public class RESTApplication extends ResourceConfig {
public RESTApplication() {
//给出要扫描的包,也就是上面heloword所在的包,扫描多个包使用分号隔开
packages("cn.mrdear.controller");
//打开日志,便于调试
register(LoggingFilter.class);
}
}
4.配置web.xml
<!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>jerseyServlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<!--Application地址-->
<param-value>cn.mrdear.application.RESTApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jerseyServlet</servlet-name>
<!--过滤的路径名-->
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
5.启动项目测试
到此一个简单的helloword运行成功了
可以在后台日志看到Jersey的请求流程
参考资料:
https://waylau.gitbooks.io/jersey-2-user-guide/content/
https://jersey.java.net/documentation/latest/
项目示例:
SJM框架整合: https://github.com/nl101531/JavaWEB