resteasy入门

http://iblike.iteye.com/blog/1010242

http://my.oschina.net/bigyuan/blog/57409

http://blog.csdn.net/nndtdx/article/details/6870391

resteasy框架是可集成框架,可与其他技术集成使用,此处只列出了与maven web项目的配置方式,基本上内容是固定的

第一步创建maven web项目并修改pom.xml文件,添加resteasy框架所需要的依赖包

<project ..."> 

    <!-- 有私有仓库这个就不用写啦 --> 
    <repositories> 
       <repository> 
          <id>JBoss repository</id> 
          <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url> 
       </repository> 
    </repositories> 
   
    <dependencies> 
   
        <dependency> 
            <groupId>org.jboss.resteasy</groupId> 
            <artifactId>resteasy-jaxrs</artifactId> 
            <version>2.2.1.GA</version> 
        </dependency> 
   
    </dependencies> 
</project> 

在pom.xml增加了新的依赖jar包,在该工程的根目录 执行 mvn eclipse:eclipse 然后刷新workspace,新依赖的jar包就会加到该工程的构建路径中了

第二步编写rest服务类

package com.mkyong.rest;  
   
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 {  
   public MessageRestService(){} 
    @GET 
    @Path("/{param}")  
    public Response printMessage(@PathParam("param") String msg) {  
   
        String result = "Restful example : " + msg;  
   
        return Response.status(200).entity(result).build();  
   
    }  
   
} 

第三步,配置web.xml

现在配置监听器和servlet以支持RESTEasy,(详细参考JBOSS documentation) 
<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> 
    <!-- 这句是关键 --> 
    <context-param> 
           <param-name>resteasy.resources</param-name> 
           <param-value>com.mkyong.rest.MessageRestService</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”。 
    注意设置“resteasy.scan”为true,以便RESTEasy扫描和自动注册你的REST服务。 

上面的例子是通过"ResteasyBootstrap"监听的。下面是另外一种方式。 
   创建一个类并且继承javax.ws.rs.core.Application,并且手动增加REST服务。 
   

package com.mkyong.app; 
import java.util.HashSet;  
import java.util.Set;  
import javax.ws.rs.core.Application;  
import com.mkyong.rest.MessageRestService; 
   
public class MessageApplication extends Application {  
    private Set<Object> singletons = new HashSet<Object>();  
   
    public MessageApplication() {  
        singletons.add(new MessageRestService());  
    }  
   
    @Override 
    public Set<Object> getSingletons() {  
        return singletons;  
    }  
}  

  web.xml中不再监听,修改web.xml 

<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> 
   
    <!-- 这句是关键 --> 
    <context-param> 
           <param-name>resteasy.resources</param-name> 
           <param-value>com.mkyong.rest.MessageRestService</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> 
         
    <servlet> 
        <servlet-name>resteasy-servlet</servlet-name> 
        <servlet-class> 
            org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher  
        </servlet-class> 
         <init-param>     
            <param-name>javax.ws.rs.Application</param-name> 
            <param-value>com.mkyong.app.MessageApplication</param-value> 
         </init-param>                 
    </servlet> 
   
    <servlet-mapping> 
        <servlet-name>resteasy-servlet</servlet-name> 
        <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
   
</web-app> 

 

 

常用标注的使用

@Path

@Post

@Get

@Put

 

posted @ 2015-07-24 16:13  偷月光的贼  阅读(1625)  评论(0编辑  收藏  举报