0、前言
案例基于 jboss 7.1.0 和restEasy3.0.18,是目前最新的,因为在网上看到restEasy的例子都比较旧了,所以想到自己写一个案例。直接进入正题。
因为使用的是jboss7,所以restEasy已经集成在里面了,直接用就行,甚至不用配置web.xml和一些自动扫描的<init-param>参数,配置的重点是在自定义的applicaiton和自己的service中。
3.因为我们配置了一个空的web.xml所以必须创建一个自己的application类用于如下:
因为使用的是jboss7,所以restEasy已经集成在里面了,直接用就行,甚至不用配置web.xml和一些自动扫描的<init-param>参数,配置的重点是在自定义的applicaiton和自己的service中。
1、配置环境
1.新建maven项目,确保你的web项目是3.0,在pom.xml中添加如下
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>3.0.18.Final</version>
</dependency>
2.在新建的web项目的web.xml中头大概是这样
2.在web.xml中
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
</web-app>
3.因为我们配置了一个空的web.xml所以必须创建一个自己的application类用于如下:
@ApplicationPath("/app"),加入这个注解后,容器会自动扫描,所以在web.xml中并不用配置 servlet等一系列的东西
<span style="color:#FF0000;">@ApplicationPath("/app")</span>
public class ShoppingApplication extends <span style="color:#FF0000;">Application </span>{
private Set<Object> singletons = new HashSet<Object>();
public ShoppingApplication() {
singletons.add(new <span style="color:#FF0000;">PrintService</span>());
}
@Override
public Set<Object> getSingletons() {
return singletons;
}
}
4。printService使我们的服务类,如下
@Path("/service")
public class PrintService {
//RESTfulExample/customer/print
@GET
@Path("/print")
public Response printMessage(@QueryParam("name") String name) {
String result = "hello==>"+name;
return Response.status(200).entity(result).build();
}
}
5.发布项目到jboss
在发布的时候可能 会提示端口被占用,
可以用netstat -aon|findstr 9990找到占用的进程杀掉,或者改变jboss端口。这里不再细说了。
6.观察控制台内容
6.观察控制台内容
可以看到控制台输出的日志,已经扫描到了我们的applicaiton.
09:29:48,378 INFO [org.jboss.resteasy.spi.ResteasyDeployment] (http--0.0.0.0-8080-1) Deploying javax.ws.rs.core.Application: class com.mkyong.rest.ShoppingApplication
09:29:48,380 INFO [org.jboss.resteasy.spi.ResteasyDeployment] (http--0.0.0.0-8080-1) Adding singleton resource com.mkyong.rest.PrintService from Application javax.ws.rs.core.Application
7.打开浏览器输入:
7.打开浏览器输入:
打开浏览器输入
一个简单的restEasy例子,更详细的资料参见官网。