软件

RESTEasy使用入门

2017-05-03  本文已影响1707人  menglj

1. 使用maven生成代码框架

mvn archetype:generate -DgroupId=win.mengx.study -DartifactId=RESTfulExample -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

运行命令后,会建立如下目录树:

RESTfulExample
├── pom.xml
└── src
└── main
├── resources
└── webapp
├── index.jsp
└── WEB-INF
└── web.xml

2. 生成idea可使用的工程文件

mvn idea:idea

3. 编辑pom.xml,增加resteasy库的依赖

--- a/pom.xml
+++ b/pom.xml
@@ -14,6 +14,11 @@
<version>3.8.1</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jaxrs</artifactId>
+ <version>2.2.1.GA</version>
+ </dependency>
</dependencies>
<build>

4. 创建REST Service

添加文件/src/main/java/win/mengx/study/MessageRestService.java

package win.mengx.study;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;

@Path("/message")
public class MessageRestService {

@GET
@Path("/{param}")
public Response printMessage(@PathParam("param") String msg) {

String result = "Restful example : " + msg;

return Response.status(200).entity(result).build();

}

}

5. 修改web.xml

修改文件src/main/webapp/WEB-INF/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 id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Restful Web Application</display-name>

<!-- Auto scan REST service -->
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>

<!-- this need same with resteasy servlet url-pattern -->
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>

<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>

</web-app>

上面的例子,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这样的页面。

6. 在IntelliJ IDEA Ultimate中集成tomcat

打开设定窗口,在Application Servers页面,点击+,选择Tomcat Server

在弹出的窗口中选择tomcat安装的目录/usr/share/tomcat7

注意:这里可能会提示"Error running Tomcat : Can't find directory '/usr/share/tomcat7/conf'",需要在此目录下建立一个conf链接,链接到/var/lib/tomcat7/conf,并且确保此目录对于IDEA来说有读权限[3]。

7. 配置项目

  1. 配置项目的Modules,设置src目录为项目的Sources目录。
  2. 在module中add web


  3. 修改Web Resource Directories,选择目录src/main/webapp

  4. 增加Artifacts,见下图




  5. 配置调试服务


  6. 配置服务端口,例如8088
  7. 点击Deployment标签,添加Artifact

8. 调试

启动调试,用浏览器访问http://localhost:8088/rest/message/mengx,会显示Restful example : mengx这样的页面。注意:这时候,uri中不需要写RESTfulExample

参考链接

  1. RESTEasy hello world example
  2. Can't run Tomcat from Intellij Idea
上一篇 下一篇

猜你喜欢

热点阅读