运行命令后,会建立如下目录树:
添加文件 /src/main/java/win/mengx/study/MessageRestService.java
修改文件 src/main/webapp/WEB-INF/web.xml
上面的例子, resteasy-servlet url-pattern 是 /rest/* ,所以必须设置 resteasy.servlet.mapping.prefix 为 /rest [2]。
到此例子可以在tomcat中运行了,只需要编译出 war 包即可。
运行命令 mvn package ,在 target 目录下会生成 RESTfulExample.war ,把此文件放到tomcat的 webapps 目录(如果是ubuntu用apt安装的tomcat7,所在目录为 /var/lib/tomcat7/webapps )下。重启tomcat服务 service tomcat7 restart 。打开浏览器,在地址栏中输入 http://localhost:8080/RESTfulExample/rest/message/mengx ,会显示 Restful example : mengx 这样的页面。
打开 设定 窗口,在 Application Servers 页面,点击 + ,选择 Tomcat Server 。
在d出的窗口中选择tomcat安装的目录 /usr/share/tomcat7
注意:这里可能会提示 "Error running Tomcat : Can't find directory '/usr/share/tomcat7/conf'" ,需要在此目录下建立一个 conf 链接,链接到 /var/lib/tomcat7/conf ,并且确保此目录对于IDEA来说有读权限[3]。
启动调试,用浏览器访问 http://localhost:8088/rest/message/mengx ,会显示 Restful example : mengx 这样的页面。 注意: 这时候,uri中不需要写 RESTfulExample 。
网上有很多rest文章,看到最后都云里雾里的,不知道具体的实现,刚刚找到一篇比较实用的文章,转过来:http://lv78.blog.163.com/blog/static/18970204820115216420298/REST简介
REST(Representational State Transfer)中文解释为“表述性状态转移”,是2000年由Roy Fielding 在他的博士论文 《 Architectural Styles and the Design of Network-based Software Architectures》中提出的架构风格。REST是基于HTTP,URI,XML,JSON等协议或者标准,它促使了http协议的更加正确使用。相对于SOAP和WSDL提供的web service方案,REST显得更加简单。
基于REST的web service应该遵守一些基本的原则:
1:资源的识别:系统中的每一个对象或是资源都可以通过一个唯一的 URI 来进行寻址,URI 的结构应该简单、可预测且易于理解,比如定义目录结构式的 URI。
2:协议: 以遵循 HTTP/1.1 RFC2616 所定义的协议的方式显式地使用 HTTP 方法,建立创建、检索、更新和删除(CRUD:Create, Retrieve, Update and Delete) *** 作与 HTTP 方法之间的一对一映射:
POST: 在服务器上创建资源;
GET: 检索某个资源;
PUT: 更改资源状态或对其进行更新;
DELETE: 删除某个资源。
3:自描述的消息:URI 所访问的每个资源都可以使用不同的形式加以表示(比如 XML 或者 JSON),具体的表现形式取决于访问资源的客户端,客户端与服务提供者使用一种内容协商的机制(请求头与 MIME 类型)来选择合适的数据格式,最小化彼此之间的数据耦合。
Java Rest Framework
1:Restlet: 出现的较早,在JAX-RS之前就有了,支持的框架较多,但是使用起来不够简单。
2:CXF: 是Celtix 和 XFire合并后的项目,支持SOAP,WSDL,JSR-WS,REST,配置较为复杂,侵入性太强,单纯构建restful web service显得较重。
3:Resteasy: 是jboss下面一个对JAX-RS(JSR311)的一个实现,使用起来简单方便,支持spring,oauth等。
4:[url=https://jersey.dev.java.net/]Jersey[/url]: 是sun公司对JAX-RS(JSR311)的一个参考实现,不过现在在逐渐的摆脱参考实现的阴影,逐渐渗透到企业应用,和sun的glassfish和netbeans结合使用可以很方便的构建restful web service。
实现restful web service使用CXF和restlet都显得太重,使用Jersey总是觉得这个是官方的参考实现,看看Easyrest的文档还是较为全面,所以选择Easyrest来作为rest api的java框架。
注:JSR 311 或 JAX-RS(用于 RESTful Web Services 的 Java API)的提议开始于 2007 年,1.0 版本到 2008 年 10 月定稿。目前,JSR 311 版本 1.1 还处于草案阶段。该 JSR 的目的是提供一组 API 以简化 REST 样式的 Web 服务的开发。
RESTEasy的一些功能点
实现中遵守 JAX-RS 规范
需要 JDK 5 或者以上版本的应用服务器中运行
支持在应用服务器中作 junit 测试
使用annotations更简单的写客户端应用 (JAX-RS 只定义了服务器端的)
支持HTTP 1.1缓存语义包括缓存。
支持多种格式: XML, JSON, YAML, Fastinfoset, Multipart, XOP, Atom, etc.
支持JAXB 和XML, JSON, Jackson, Fastinfoset, and Atom 互转
支持GZIP ,JBoss Web, Tomcat 6, and Servlet 3.0,EJB, Seam, Guice, Spring, and Spring MVC integration
使用Resteasy构建 restful web service
把对图书馆的书籍的 *** 作作为例子,讨论使用resteasy构建restful web service的方法。中间包括pom.xml的配置,web.xml的配置,相关上下文类的实现,核心类中到一些方法。
1:创建工程,配置pom.xml
mvn archetype:create -DgroupId=com.longtask.rest.easyrest -DartifactId=easyrest -DarchetypeArtifactId=maven-archetype-webapp
mvn eclipse:eclipse
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)