`
天塔上的猫
  • 浏览: 3941 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Resteasy 入门01

 
阅读更多
一,Resteasy简介
    Resteasy是Jboss的开源项目,遵守 ASL 2.0 协议。RESTEasy的开发者是Bill Burke。

    Resteasy同样是为构建SOAP应用,但是更加优秀,个人觉得是因为它的注解,它的Restful风格。

    本文以 Resteasy 3.0.7为例

二,安装与配置


    可直接上官网下载,另Resteasy是Jboss的项目,所以在JBoss AS ,JBoss EAP ,Wildfly中是捆绑的,只需做简单配置就可以使用。(JBoss AS ,JBoss EAP ,Wildfly,3者区别见注1)
   
2.1.JBoss AS ,JBoss EAP ,Wildfly 中配置Resteasy
   a.一个空的 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>

    b.创建Application
            import javax.ws.rs.ApplicationPath;
            import javax.ws.rs.core.Application;

            @ApplicationPath("/root-path")
            public class MyApplication extends Application
            {
            }

注:如果你返空集或者单例对象,你的项目将会扫描jax - rs注释。

    c.在根目录(web-inf)下创建jboss-deployment-structure.xml
<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.jboss.resteasy.resteasy-yaml-provider" services="import"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

注:关于module的其他配置见官网,比如org.jboss.resteasy.resteasy-jaxrs ,org.jboss.resteasy.resteasy-jaxb-provider 等。

以上部分未测试,从官网提供的文档中得出,见谅。 下文主要配置其他servelt 容器。

  2.2.Resteasy在其他servlet 容器中的配置
  a.下载jar.下载Resteasy,解压在lib下面看到需要的jar,本文以Maven为例
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-servlet-initializer</artifactId>
            <version>3.0.7.Final</version>
        </dependency>

注:该配置在Servlet 3.0以上有效,低版本的配置见官网。

b. 准备一个服务类,该类提供Api服务,例如:

@Path(value="/test")
public class InitServlet {

	@GET
	@Path(value="/hello")
	public String create(@QueryParam("a") String query){
		System.out.println("Hello Word!");
		System.out.println(query);
		return "hello";
	}
}

注:@Path @GET @QueryParam 的配置以后说明

  c.配置web.xml
    c.1 配置servlet
	<servlet>
		<servlet-name>Resteasy</servlet-name>
		<servlet-class>
	org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
		</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>Resteasy</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>


   c.1.1 如果使用 javax.ws.rs.Application参数 应准备一个Application,例如
public class InitApplication extends Application {
	    private Set<Object> singletons = new HashSet<Object>();  
	    private Set<Class<?>> classes = new HashSet<Class<?>>();  
	  
	    public InitApplication() {  
	//      classes.add(UserServlet.class);  
	       singletons.add(new InitServlet());  
	    }  
	  
	    @Override  
	    public Set<Class<?>> getClasses() {  
	        return classes;  
	    }  
	  
	    @Override  
	    public Set<Object> getSingletons() {  
	        return singletons;  
	    } 

}

注: 在初始时,将singletons.add(new InitServlet());  将服务api加入容器启动。

   c.1.2 如果使用 javax.ws.rs.Application参数, servlet应加上启动参数
   <servlet>
        <servlet-name>Resteasy</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>a.b.c.InitApplication</param-value>
        </init-param>
    </servlet> 

注:a.b.c.InitApplication是你自己的java类,extends javax.ws.rs.core.Application,多个core哈,上文有它的代码

    c.2 配置listener
	<listener>
		<listener-class>		org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
		</listener-class>
	</listener>

注:请将它放在YOUR LISTENERS 之前

到目前为止,在其他servlet 容器中具体配置已经完成,将项目加了Tomcat或者jetty等,启动,输入http://localhost:8080/你的项目名/test/hello,将会出现hello,配置成功。

三,在其他servlet 容器中具体配置可以更改为以下几种
    1.以servlet Filter的方式
filter-class  为org.jboss.resteasy.plugins.server.servlet.FilterDispatcher
同时也不需要listener了

            
<web-app>
    <filter>
        <filter-name>Resteasy</filter-name>
        <filter-class>
          org.jboss.resteasy.plugins.server.servlet.FilterDispatcher
        </filter-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>a.b.c.InitApplication</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>Resteasy</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

    2.不使用果使用 javax.ws.rs.Application
以resteasy.resources为web.xml的启动参数,以服务api类为值,直接启动服务,同样可访问。
        <context-param>
		<param-name>resteasy.resources</param-name>
		<param-value>a.b.c.InitServlet</param-value>
	</context-param>
	<listener>
		<listener-class>
	org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
		</listener-class>
	</listener>

	<servlet>
		<servlet-name>Resteasy</servlet-name>
		<servlet-class>
	org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher		</servlet-class>
			</servlet>

	<servlet-mapping>
		<servlet-name>Resteasy</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>


另,如果url-pattern不止/*,如

	<servlet-mapping>
		<servlet-name>Resteasy</servlet-name>
		<url-pattern>/restful-services/*</url-pattern>
	</servlet-mapping>

那么请在web.xml中加上启动项
	   <context-param>
                <param-name>resteasy.servlet.mapping.prefix</param-name>
                <param-value>/restful-services</param-value>
       </context-param>



注1.JBoss AS ,JBoss EAP ,Wildfly,3者区别http://jblzdg.iteye.com/blog/2087331
注2.文章信息主要来源于官网
分享到:
评论

相关推荐

    RESTEasy入门经典.docx

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

    RESTEasy 入门实例

    **RESTEasy 入门实例** RESTEasy 是一个开源的 JBoss 项目,它实现了 Java API for RESTful Web Services (JAX-RS) 规范,为 Java 开发者提供了一个简单易用的框架来创建 RESTful 服务。JAX-RS 是 Java 平台上的...

    resteasy上传功能资料

    在本文中,我们将深入探讨RestEasy如何实现文件上传功能,以及如何通过代码示例进行学习入门。 首先,理解RESTful服务的基本概念至关重要。REST(Representational State Transfer)是一种网络应用程序的设计风格和...

    resteasy资料整理

    resteasy资料整理,使技术人员快速入门。快速开发rest接口。

    resteasy guide

    RESTEasy的学习文档包含了从入门到精通所需的所有信息,包括安装配置指南、核心概念介绍、进阶功能解析以及最佳实践建议等。文档覆盖了从基础知识到高级主题的全面内容,旨在帮助开发者快速掌握RESTEasy的核心特性和...

    Resteasy:REST和JAXRS

    高枕无忧 RESTEasy是一个JBoss.org项目,旨在提供用于开发...RESTEasy入门在存储库中查看。 阅读。 博客在。文献资料要阅读文档,您可以。问题问题保存在。建造当前,RESTEasy可以使用JDK 1.8和11构建。 如果您只想构建

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

    入门构建此项目并将其安装到您的 Maven 存储库中: $ mvn install然后,您应该在应用程序的build.gradle或pom.xml添加对org.springframework.boot:spring-boot-resteasy:1.0.0.BUILD-SNAPSHOT的build.gradle 。...

    rest入门教程

    本入门教程将深入探讨REST的基本概念、RESTEasy框架的使用以及如何编写REST服务。 首先,我们来看REST的核心原则: 1. **统一接口**:REST强调的是接口的一致性,使得任何客户端都能通过通用接口与服务端交互。...

    web+service入门教程

    开发Web服务通常涉及使用像Apache Axis、JAX-WS或RESTEasy这样的工具和框架。这些工具简化了服务的创建、部署和测试过程。 10. **服务测试** 使用工具如SOAPUI,开发者可以测试Web服务的正确性和性能,确保它们...

    nascimbeni-jaxrs-2.0-starter-project:基于 RESTEasy 3.0.10 和 Java 8 的 Starter RESTful API 项目

    JAXRS 2.0 简单入门项目该项目演示了如何实现一个非常简单的 Web 服务,旨在用作新 RESTful API 的入门项目。系统要求: Maven 2.0.9 或更高版本构建项目: 在根目录mvn码头:运行这将构建一个 WAR 并使用嵌入式 ...

    seam 2.1 参考手册

    - **RESTeasy集成**:RESTeasy是由JBoss成员Bill Burke开发的一个REST实现,它也被集成到Seam 2.1中,进一步增强了框架对RESTful应用的支持。 - **RESTful应用示例**:通过集成JAX-RS和RESTeasy,Seam 2.1能够提供更...

    全新原生Java影视源码-test-your-trivia:一种基于Kotlin并由Quarkus框架提供支持的新型琐事Alexa游戏

    全新原生Java影视源码 测试你的琐事 ...'io.quarkus:quarkus-resteasy' ### 灵感存在许多 Alexa 问答游戏,但通常具有: 固定数量的问题。 一组有限的类别,或者有时只有一个类别,并且不利用动态问题

    夸库:夸库:超音速亚原子Java

    基于标准:基于您喜欢和使用的标准和框架(RESTEasy和JAX-RS,Hibernate ORM和JPA,Netty,Eclipse Vert.x,Eclipse MicroProfile,Apache Camel ...)。 微服务至上(Microservice First) :带来闪电般的快速...

    J2EE开发技术手册

    8. **JAX-RS(Java API for RESTful Web Services)**:JAX-RS是JavaEE中的RESTful Web服务开发标准,如Jersey和RestEasy是其实现库。 **开发手册内容**: "J2EE开发技术手册"很可能包含了以下几个部分: 1. **...

    J2EE学习路线(整理-全)

    理解它们的工作原理以及如何在服务器端进行交互是J2EE入门的关键。 3. **JavaServer Pages (JSP) 标准标签库 (JSTL)**:JSTL提供了标准的标签来简化JSP页面的编写,避免过多的脚本let和表达式,提高代码可读性。 4...

    JAXRS-HelloWorld

    本示例“JAXRS-HelloWorld”是学习JAX-RS基础知识的一个经典入门项目。 首先,我们来看一下这个项目的目录结构。根据提供的压缩包文件名“JAXRS-HelloWorld-master”,我们可以推测这是一个Git仓库的克隆,通常包含...

Global site tag (gtag.js) - Google Analytics