RestEasy
2018-08-02 05:54:23来源:博客园 阅读 ()
一、简介
RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Java应用程序。它是JAX-RS规范的一个完整实现并通过JCP认证。作为一个JBOSS的项目,它当然能和JBOSS应用服务器很好地集成在一起。但是,它也能在任何运行JDK5或以上版本的Servlet容器中运行。RESTEasy还提供一个RESTEasy JAX-RS客户端调用框架。能够很方便与EJB、Seam、Guice、Spring和Spring MVC集成使用。支持在客户端与服务器端自动实现GZIP解压缩。
二、配置
在WEB-INF/web.xml中配置:
1、通过servlet-mapping配置
1 <web-app>
2 <display-name>Archetype Created Web Application</display-name>
3 <servlet>
4 <servlet-name>Resteasy</servlet-name>
5 <servlet-class>
6 org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
7 </servlet-class>
8 <init-param>
9 <param-name>javax.ws.rs.Application</param-name>
10 <param-value>com.restfully.shop.services.ShoppingApplication</param-value>
11 </init-param>
12 </servlet>
13 <servlet-mapping>
14 <servlet-name>Resteasy</servlet-name>
15 <url-pattern>/*</url-pattern>
16 </servlet-mapping>
17 </web-app>
2、通过ServletContextListener配置
1 <web-app>
2 <listener>
3 <listener-class>
4 org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
5 </listener-class>
6 </listener>
7 <!-- ** INSERT YOUR LISTENERS HERE!!!! -->
8 <servlet>
9 <servlet-name>Resteasy</servlet-name>
10 <servlet-class>
11 org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
12 </servlet-class>
13 </servlet>
14 <servlet-mapping>
15 <servlet-name>Resteasy</servlet-name>
16 <url-pattern>/resteasy/*</url-pattern>
17 </servlet-mapping>
18 </web-app>
3、通过ServletFilter配置
1 <web-app>
2 <filter>
3 <filter-name>Resteasy</filter-name>
4 <filter-class>
5 org.jboss.resteasy.plugins.server.servlet.FilterDispatcher
6 </filter-class>
7 <init-param>
8 <param-name>javax.ws.rs.Application</param-name>
9 <param-value>com.restfully.shop.services.ShoppingApplication</param-value>
10 </init-param>
11 </filter>
12 <filter-mapping>
13 <filter-name>Resteasy</filter-name>
14 <url-pattern>/*</url-pattern>
15 </filter-mapping>
16 </web-app>
4、与Spring集成
1 <web-app> 2 <display-name>Archetype Created Web Application</display-name> 3 <listener> 4 <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> 5 </listener> 6 <listener> 7 <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class> 8 </listener> 9 <servlet> 10 <servlet-name>Resteasy</servlet-name> 11 <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> 12 </servlet> 13 <servlet-mapping> 14 <servlet-name>Resteasy</servlet-name> 15 <url-pattern>/*</url-pattern> 16 </servlet-mapping> 17 </web-app>
三、用法
1 import javax.ws.rs.DefaultValue; 2 import javax.ws.rs.GET; 3 import javax.ws.rs.HeaderParam; 4 import javax.ws.rs.MatrixParam; 5 import javax.ws.rs.POST; 6 import javax.ws.rs.PUT; 7 import javax.ws.rs.Path; 8 import javax.ws.rs.PathParam; 9 import javax.ws.rs.QueryParam; 10 11 import net.sf.json.JSONArray; 12 13 @Path(value = "/test") 14 // @Consumes(value = "application/*") // 规定传入的格式 15 // @Produces(value = "application/*") // 规定传出的格式 16 public class TestAPI { 17 18 @GET 19 @Path(value = "/testGET") // 定义请求路径 20 public String testGET() { 21 22 return "访问成功:/testGET"; 23 24 } 25 26 @GET 27 @Path(value = "/{var}/testVar") // 正则表达式定义请求路径,例如:/a/testVar、/b/testVar 28 public String testVar() { 29 30 return "访问成功:/{var}/testVar"; 31 32 } 33 34 @GET 35 @Path(value = "/{var:.*}/testVars") 36 public String testVars() { 37 38 return "访问成功:/{var:.*}/testVars";// 正则表达式定义请求路径,例如:/a/testVars、/a/b/testVars 39 40 } 41 42 @PUT 43 @Path(value = "/testPathParam/{id}") 44 public String testPathParam(@PathParam(value = "id") String id) { 45 46 return "访问成功:部分路径中id = " + id;// 请求路径中部分路径映射方法使用的参数,例如/testPathParam/10、/testPathParam/20 47 48 } 49 50 @PUT 51 @Path(value = "/testQueryParam") 52 public String testQueryParam(@QueryParam(value = "id") String id) { 53 54 return "访问成功:参数中id = " + id;// 请求路径中参数映射方法使用的参数,例如/testQueryParam?id=10、/testQueryParam?id=20 55 56 } 57 58 @PUT 59 @Path(value = "/testMatrixParam") 60 public String testMatrixParam(@MatrixParam(value = "id1") String id1, @MatrixParam(value = "id2") String id2) { 61 62 return "访问成功:id1 = " + id1 + " id2 = " + id2;// 请求路径中传入参数映射方法使用的参数,例如/testQueryParam;id=10;id=20 63 64 } 65 66 @PUT 67 @Path(value = "/testHeaderParam") 68 public String testHeaderParam(@HeaderParam(value = "Content-Type") String contentType) { 69 70 return "访问成功:contentType = " + contentType;// 访问请求头信息,可以自定义key、value 71 72 } 73 74 @PUT 75 @Path(value = "/testDefaultValue") 76 public String testDefaultValue(@QueryParam(value = "value") @DefaultValue(value = "100") Integer value) { 77 78 return "访问成功:value = " + value;// 设置默认值 79 80 } 81 82 @POST 83 @Path(value = "/testFormat") 84 // @Consumes(value = "application/json") // 规定传入的格式 85 // @Produces(value = "application/json") // 规定传出的格式 86 public JSONArray testFormat(@QueryParam(value = "value") Integer value) { 87 88 JSONArray jsonArray = JSONArray.fromObject(value); 89 90 return jsonArray; 91 92 } 93 94 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java 简介 2020-06-09
- 黑菜菌的JAVA学习笔记 2020-06-09
- JAVA8 Stream流 2020-06-02
- Redis入门实战(1)-简介 2020-05-31
- 微服务项目持续集成部署流程简介 2020-05-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash