`
y806839048
  • 浏览: 1117194 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

resteasy的一些配置

阅读更多

 

总结:

 

增加rest服务

 

方式一:

自动增加rest服务

<listener> 

        <listener-class> 

            org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap  

        </listener-class> 

    </listener> 

   

 

 

方式二:

手动增加rest服务

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

 

 

 

 

 

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;  

    }  

}  

 

 

MessageApplication这个中用@ApplicationPath("/api")设置基路径,刚好是前缀还有用吗

 

 

示例:

转载自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配置RestEasy**:在`web.xml`中,配置Spring的DispatcherServlet和RestEasy的Servlet,以启用Spring和RestEasy的整合。 - **测试类**:如`MyServiceTest.java`,用于验证RestEasy服务是否能正常工作。 **...

    RESTEasy实现上传下载文件

    在Java EE应用中,我们需要在web.xml中配置RESTEasy的Servlet,例如: ```xml &lt;servlet-name&gt;Resteasy &lt;servlet-class&gt;org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher &lt;servlet-name&gt;...

    resteasy helloworld demo

    为了使 RESTEasy 能够识别并处理这些资源,我们需要在应用的初始化阶段配置 RESTEasy。如果你是在一个 Java EE 容器(如 WildFly)中运行,这通常可以通过部署描述符(如 `web.xml`)完成。对于独立应用,我们可以...

    resteasy开发手册

    在这份手册中,介绍了RESTEasy的安装配置、如何在不同的容器环境下升级RESTEasy、如何在Servlet容器中配置独立的RESTEasy,以及如何使用各种注解和配置来创建和管理RESTful服务。 手册首先概述了RESTEasy的核心概念...

    resteasy使用netty

    RestEasy与Netty结合使用,可以构建高性能的RESTful服务,摆脱传统的Servlet容器如Tomcat的依赖。RestEasy是JBoss公司开发的一个Java框架,它实现了JSR 311和JSR 339(Java API for RESTful Web Services)标准,...

    restEasy 学习总结,附带源码

    在 Servlet 3.0 之前,RESTEasy 需要在应用服务器或 servlet 容器中进行额外的配置,比如通过 web.xml 文件注册 RESTEasy 的拦截器和提供者。而 Servlet 3.0 引入了注解驱动的部署,允许开发者直接在类或方法上使用 ...

    使用RESTEasy构建WebService简介

    最后,RESTEasy项目还具有一些亮点,例如出色的性能、扩展性和文档资料的丰富性,这使得它成为开发RESTful Web服务时的热门选择之一。 综合上述知识点,使用RESTEasy框架构建WebService的整个过程,从项目初始化、...

    resteasy 需要jar包

    在 Resteasy 中,它可以用于自动配置和管理组件。 2. **javassist-3.8.0.GA.jar**:Javassist 是一个动态类文件操作库,它允许开发者在运行时修改或生成类。在 Resteasy 中,它用于处理类的动态加载和转换,以支持...

    resteasy所用能用到的jar包

    在使用RESTEasy时,通常需要依赖一些特定的jar包来支持其功能。以下是标题和描述中提到的几个关键jar包及其在RESTEasy中的作用: 1. **activation.jar**:这是JavaBeans Activation Framework (JAF)的一部分,用于...

    resteasy-jaxrs-2.3.2 源码

    4. **扫描和注册**:Resteasy能够自动扫描应用中的资源类和提供者,并将它们注册到服务中,无需手动配置。 5. **模块化架构**:Resteasy设计为模块化,允许开发者根据需求选择特定的功能模块,如安全、缓存或CDI...

    RestEasy简介

    3. **配置应用**: 配置应用服务器或者Servlet容器,添加RestEasy的依赖并注册RestEasy的Servlet或Filter。 4. **部署服务**: 将包含资源类的Java应用部署到服务器。 5. **测试服务**: 使用HTTP客户端工具(如curl...

    Resteasy英文文档

    配置Resteasy在这些应用服务器中的运行环境,包括设置模块路径、调整参数等,以适应不同项目的需求。 #### 3.5 Standalone Resteasy 介绍如何独立运行Resteasy,无需依赖于任何应用服务器,这对于测试和小型项目...

    spring-boot-resteasy:RESTEasy 的 Spring Boot 自动配置

    该项目为 Spring Boot 应用程序提供 RESTEasy 自动配置。入门构建此项目并将其安装到您的 Maven 存储库中: $ mvn install然后,您应该在应用程序的build.gradle或pom.xml添加对org.springframework.boot:spring-...

    resteasy示例

    RESTEasy 项目是 JAX-RS 的一个实现,集成的一些亮点: * 不需要配置文件,只要把JARs文件放到类路径里面,添加 @Path 注解就可以了。 * 完全的把 RESTEeasy 配置作为Seam 组件来看待。 * HTTP 请求由Seam来提供...

    RESTEasy 简单实例

    然后,我们需要配置 RESTEasy 容器,这通常在应用服务器或 Servlet 容器中完成。例如,在 JBoss 或 Tomcat 中,我们可以创建一个 `web.xml` 文件来启动 RESTEasy 框架: ```xml ... &lt;param-name&gt;resteasy....

    Jetty整合RestEasy开发RESTful web service的例程

    3. **配置RestEasy** - 配置Jetty以识别并处理JAX-RS资源。创建一个`WEB-INF/web.xml`文件,定义Servlet和监听器: ```xml &lt;listener-class&gt;org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap ...

    RESTEasy身份验证

    RESTEasy是Java中一个流行的RESTful Web服务...通过适当地配置Servlet容器和RESTEasy组件,开发者可以创建安全的REST服务,并控制不同级别的访问权限。理解并正确实施这些机制对于构建健壮的RESTful应用程序至关重要。

    RESTEasy之返回JSON数据格式

    1. **配置RESTEasy JSON支持**: 在你的Java EE项目中,首先需要添加RESTEasy的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.jboss.resteasy &lt;artifactId&gt;resteasy-jax...

    restEasy3.0.18+jboss7案例

    案例基于 jboss 7.1.0 和restEasy3.0.18,是目前...因为使用的是jboss7,所以restEasy已经集成在里面了,直接用就行,甚至不用配置web.xml和一些自动扫描的参数,配置的重点是在自定义的applicaiton和自己的service中。

    RESTEasy +Jackson 2 进行JSON转换

    或者,如果使用的是RESTEasy的默认配置,只需要确保没有其他消息处理器与Jackson冲突,RESTEasy会自动选择Jackson作为JSON处理的首选库。 一旦配置完成,我们就可以在REST服务的资源方法中使用Jackson进行JSON转换...

Global site tag (gtag.js) - Google Analytics