Jesery是基于JAX-RS标准参考实现,是Java领域开发REST式的web服务的主流工具。
下载稳定版Jersery发布框架,稳定版为2.22.1
https://jersey.java.net/download.html
Web项目配置
解压jaxrs-ri-2.22.1.zip压缩包,将lib、ext、api三个文件夹里边的jar包拷贝至WEB-INF/lib下面。
在web.xml里添加代码
<servlet>
<servlet-name>REST Service</servlet-name>
<servlet-class>com.dux.util.AppServiceServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.dux.util.RestApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
其中AppServiceServletContainer继承ServletContainer,承担全局请求拦截功能,如果不需要刻意直接配置成
org.glassfish.jersey.servlet.ServletContainer.ServletContainer
RestApplication为jesery提供服务包注册等功能。
示例:
import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
import org.glassfish.jersey.server.ResourceConfig;
public class RestApplication extends ResourceConfig {
public RestApplication() {
//服务类所在的包路径
packages("com.dux.rest.resources");
//注册JSON转换器
register(JacksonJsonProvider.class);
}
}
Rest接口编写
新建普通java类,放置于com. dux.rest.resources目录下。
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
@Path("user")
public class UserResource {
@GET
@Path("/getUserDetail/{param}")
@Produces("text/plain;charset=UTF-8")
public String insertTeacher(@PathParam("param") String userguid) {
//自定义代码
//...
return "request OK";
}
}
该类模拟客户端请求某一用户详细信息,传递参数为userguid
请求url为:http://127.0.0.1:8080/DuxJeseryDemo/rest/user/getUserDetail/youruserguid
PS:
文档只是简单说明restful服务搭建,编写简单restful接口
如果需要了解更进一步内容,如文件下载与上传,安全控制等可以参考官方文档
推进一本书《Java RESTful Web Service实战》,里边有详细介绍。