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. 配置项目
- 配置项目的Modules,设置
src
目录为项目的Sources目录。
-
在module中add web
- 修改
Web Resource Directories
,选择目录src/main/webapp
-
增加Artifacts,见下图
-
配置调试服务
- 配置服务端口,例如
8088
- 点击
Deployment
标签,添加Artifact
8. 调试
启动调试,用浏览器访问http://localhost:8088/rest/message/mengx
,会显示Restful example : mengx
这样的页面。注意:这时候,uri中不需要写RESTfulExample
。