`

resteasy helloword程序

    博客分类:
  • j2ee
 
阅读更多

 

转载自http://zorro.blog.51cto.com/2139862/874953 
修改了原文部分错误(web.xml文件中和第二种方法) 

RestEasy, Jboss项目的JAX-RS参考实现。 
1. 技术和工具: 
       RESTEasy 2.2.1.GA 
       JDK 1.6 
       Maven 3.0.3 
       Eclipse 3.6 
2. 目录结构 
    

3. 标准的Web项目 
   创建一个标准的Maven web 项目结构(可以通过eclipse中选择一个web模版项目来创建)   
    mvn archetype:create -DgroupId=com.mkyong.common -DartifactId=RESTfulExample   
    -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false 
转换为Eclipse web工程: 
    mvn eclipse:eclipse -Dwtpversion=3.2.5 

4. 项目依赖 
   在pom.xml中声明Jboss 依赖为仓库为 resteasy-jaxrs(如果有私有仓库如nexus,当然这个可以不用) 

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

5. 写个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();  
   
    }  
   

6. 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服务。 

7. 浏览器地址访问目录结构为:“工程URL/rest/message/”匹配“MessageRestService”,并且“工程URL/rest/message/{任意值}”匹配@PathParam参数 
   如:http://localhost:8080/RESTfulExample/rest/message/aaa, 
   结果为:Restful example : aaa 

8. 上面的例子是通过"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> 
分享到:
评论

相关推荐

    Spring整合RestEasy示例工程源码

    Spring以其IOC(Inversion of Control)和AOP(Aspect Oriented Programming)特性,为应用程序提供了一种灵活的架构。整合Spring和RestEasy,可以利用Spring的依赖注入机制管理RestEasy的组件,以及利用Spring的AOP...

    resteasy使用netty

    RestEasy提供了与Netty集成的模块,使得我们可以将RestEasy的应用程序上下文注册到Netty服务器中。这样,当Netty接收到HTTP请求时,会将其交给RestEasy进行路由和处理,RestEasy会根据@Path注解找到对应的资源方法,...

    resteasy手册

    resteasy

    RESTEasy实现上传下载文件

    在本文中,我们将深入探讨如何使用RESTEasy和Guice框架实现文件的上传与下载功能。RESTEasy是一个基于Java的RESTful Web服务实现,它与Java EE应用服务器集成,而Guice是Google提供的一款轻量级依赖注入框架,帮助...

    resteasy helloworld demo

    RESTEasy 是一个开源的 Java 框架,它实现了 JAX-RS(Java API for RESTful Web Services)规范,使得开发者能够轻松地在 Java 应用程序中创建 RESTful 服务。JAX-RS 是一种用于构建 Web 服务的标准接口,它简化了...

    resteasy 需要jar包

    Resteasy 是一个开源的 JAX-RS 实现,它允许开发者构建 RESTful Web 服务,并在 Java 应用程序中轻松地使用这些服务。JAX-RS(Java API for RESTful Web Services)是 Java 中的一个标准,用于创建基于 HTTP 的 REST...

    RESTEasy之返回JSON数据格式

    它与Java EE应用程序服务器集成,如JBoss AS、WildFly等,提供了一种简单的方式来创建和消费REST API。本文将深入探讨如何使用RESTEasy返回JSON数据格式。 在RESTful服务中,JSON(JavaScript Object Notation)是...

    使用RESTEasy构建WebService简介

    RESTEasy不仅支持JAX-RS 1.1和2.0规范,还提供了一个可以轻松集成JAX-RS应用程序到JEE容器中的轻量级容器。 RESTful是一种互联网软件架构设计风格,它遵循REST(Representational State Transfer,代表性状态转移)...

    restEasy 学习总结,附带源码

    这种方式让开发者可以更加灵活地控制应用程序的生命周期,尤其适合微服务和分布式系统。 **RESTEasy 通用差错拦截** RESTEasy 提供了错误处理机制,可以通过自定义异常处理器(ExceptionMapper)来捕获和转换业务...

    resteasy开发手册

    JAX-RS(Java API for RESTful Web Services)是一个Java编程语言的应用程序接口,用于开发基于REST架构风格的Web服务。RESTEasy允许开发者使用Java语言编写基于REST的服务,同时为开发者提供了创建RESTful服务的...

    resteasy所用能用到的jar包

    10. **slf4j-api.jar, logback-classic.jar** 或其他日志相关的jar:提供日志记录功能,帮助开发者调试和追踪应用程序的行为。 11. **geronimo-jaxrs_2.0_spec.jar**:对于某些环境,可能需要兼容性的JAX-RS 2.0...

    resteasy-jaxrs-2.3.2 源码

    Resteasy是Java应用程序开发中的一个关键组件,它是一个开源的JAX-RS(Java API for RESTful Web Services)实现。JAX-RS是Java标准,用于构建RESTful Web服务,而Resteasy则提供了丰富的功能来支持这一标准。在这个...

    resteasy jar包

    它是一个JAX-RS(Java API for RESTful Web Services)的实现,允许开发人员轻松地在Java应用程序中创建和消费REST服务。JAX-RS是Java EE的一个标准,它为构建基于HTTP协议的RESTful服务提供了简化的方法。 在...

    resteasy参考文档及jar包

    RESTEasy是一款开源的Java框架,专门用于实现JAX-RS(Java API for RESTful Web Services)规范,使得开发RESTful Web服务变得更加简单。RESTEasy集成了多种Java EE应用服务器,如Tomcat、Jetty以及WildFly等,为...

    RestEasy简介

    **RestEasy简介** RestEasy是一款基于Java的RESTful Web服务框架,它被广泛应用于JAX-RS(Java API for RESTful Web Services)规范的实现。RESTful架构风格是Web服务设计的一种流行方式,强调资源的识别和通过HTTP...

    Netty-Resteasy-Spring

    RESTEasy:RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Java应用程序。它是JAX-RS规范的一个完整实现并通过JCP认证。 JAX-RS: 是一套用java实现REST服务的规范。(全名...

    RESTEasy入门经典.docx

    RESTEasy是一个由JBoss开发的开源项目,专门用于构建RESTful Web Services。REST(Representational State Transfer)是一种轻量级的Web服务设计风格,强调简单、直接的HTTP协议使用,与SOAP等较重的Web服务协议相比...

    resteasy实例demo

    1. **RESTful基础**:REST(Representational State Transfer,表现层状态转移)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,强调简洁、无状态和可缓存性。RESTEasy作为JAX-RS(Java API for RESTful ...

    Resteasy英文文档

    介绍Resteasy的日志系统,帮助开发者调试和监控应用程序的运行状态。 ### 四、使用@Path和@GET、@POST等注解 #### 4.1 @Path和正则表达式映射 通过实例展示如何使用`@Path`注解结合正则表达式定义资源路径,增强...

    RESTEasy 简单实例

    RESTEasy 是一个开源的 JBoss 项目,它实现了 Java API for RESTful Web Services (JAX-RS) 规范,使开发人员能够轻松地在 Java 应用程序中创建 RESTful Web 服务。RESTEasy 与 Java EE 和 Java SE 兼容,并广泛应用...

Global site tag (gtag.js) - Google Analytics