创建RESTEasy helloworld工程
来源:互联网 发布:维棠 for mac 编辑:程序博客网 时间:2024/06/05 23:51
官网上的工程都是通过maven建立的,本文没有使用maven,所以搭建helloworld工程分如下4步:
1)建立web工程,导入RESTEasy依赖jar
这步比较简单,就不阐述了
2)配置web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <!-- 自动检索WEB-INF/lib下的jar以及@Provider标记的类和JAX-RS资源类(@Path, @GET, @POST等等),并注册 --><context-param><param-name>resteasy.scan</param-name><param-value>true</param-value></context-param><!-- 不加监听器就会造成Tomcat无法解析html --><listener> <listener-class> org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap </listener-class> </listener><servlet><servlet-name>resteasy-servlet</servlet-name><servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class></servlet> <servlet-mapping><servlet-name>resteasy-servlet</servlet-name><url-pattern>/rest/*</url-pattern></servlet-mapping><context-param><param-name>resteasy.servlet.mapping.prefix</param-name><param-value>/rest</param-value></context-param></web-app>
注意:如果不加监听器,Tomcat在解析HTML时会报404错误,这个问题折磨了我好长时间。
关于resteasy.servlet.mapping.prefix,官方文档上说如果servlet-mapping的url-pattern不为"/*"就必须指明,就像我上面给出的配置一样。其实,不配置前缀也是可以的,但是服务类的路径必须以"/rest"开头,如下面的@Path("/hello")应改写成@Path("/rest/hello")。当然还是建议大家在配置文件中指明前缀。
3)编写服务类(姑且称为服务类)
import javax.ws.rs.FormParam;import javax.ws.rs.GET;import javax.ws.rs.POST;import javax.ws.rs.PUT;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.QueryParam;import javax.ws.rs.core.MediaType;@Path("/hello")public class Hello {@POST@GET@PUT@Path("/world")@Produces(MediaType.TEXT_PLAIN)public String test(@FormParam("a") String[] a, @QueryParam("a") String[] a2) {/** * POST请求方式传递的参数被@FormParam 捕获到 * GET PUT DELETE(尽管没有添加注解)传递的参数则全部被@QueryParam 捕获到 */return print(a) + "----" + print(a2);}private String print(String[] a) {if (a == null)return "";else {StringBuffer sb = new StringBuffer();for (String b : a) {sb.append(b + " ");}return sb.toString();}}}这里我在一个test()方法上面加了多种请求方式@GET,@PUT,@POST,仅仅是为了好玩,真正在用的时候还是不建议这样使用。
4)编写client调用服务
<form action="./rest/hello/world" method="DELETE"><input type="hidden" name="a" value='{b:"hello wolrd"}' /><input type="hidden" name="a" value='{b:"hello pig"}' /><input type="submit" value="OK" /></form>action的路径我使用的是相对路径,这样是可以访问到的,使用full path:http://localhost:8080/projectName/rest/hello/world当然也可以
5)效果图
运行结果图如下:
- 创建RESTEasy helloworld工程
- 创建Android HelloWorld工程
- RESTEasy 3.X Helloworld
- 使用IDEA创建HelloWorld工程
- tomcat7上部署RESTeasy[helloworld]
- 二.Cocos2d-x创建HelloWorld工程
- 基于eclipse创建android的helloworld工程
- eclipse创建第一个Android工程HelloWorld
- 创建一个helloworld springmvc的web工程
- JNI开发环境搭建以及创建HelloWorld工程
- 用NMAKE创建VS2012 C++工程一 HelloWorld
- 第二篇 创建第一个Android工程HelloWorld
- XCode5.0和cocos2d-x-3.0beta 创建HelloWorld工程
- JBPM6学习笔记(二)创建JBPM工程:helloworld
- Eclipse中创建Maven工程并打包(HelloWorld)
- 在MAC上搭载cocos2d-x环境,创建HelloWorld工程
- Eclipse使用Maven创建Struts2工程之Helloworld
- react-native配置及创建helloworld工程遇到的问题
- maven最佳实践
- 利用lipo编译合并iPhone模拟器和真机通用的静态类
- 设置 java vm 参数 解决内层溢出问题
- linux socket常用函数
- PHP分页技术详解
- 创建RESTEasy helloworld工程
- UIActionSheet 按钮不响应点击事件的解决方法
- file_operations结构体详细分析
- HTML 学习笔记
- IOS 剪切板
- IOS 获取视频图片的
- java实现各种基础排序(冒泡排序、快速排序、直接选择排序、堆排序、直接插入排序、归并排序)
- jQuery 学习笔记
- javacript radio checkbox