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,做如下更改



    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

    
        
            
        
    


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

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

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

注:该配置在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
	
		Resteasy
		
	org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
		
	

	
		Resteasy
		/*
	


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

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

   c.1.2 如果使用 javax.ws.rs.Application参数, servlet应加上启动参数
   
        Resteasy
        
            org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
        
        
            javax.ws.rs.Application
            a.b.c.InitApplication
        
     

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

    c.2 配置listener
	
				org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
		
	

注:请将它放在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了

            

    
        Resteasy
        
          org.jboss.resteasy.plugins.server.servlet.FilterDispatcher
        
        
            javax.ws.rs.Application
            a.b.c.InitApplication
        
    

    
        Resteasy
        /*
    



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

	
		Resteasy
		
	org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher		
			

	
		Resteasy
		/*
	


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

	
		Resteasy
		/restful-services/*
	

那么请在web.xml中加上启动项
	   
                resteasy.servlet.mapping.prefix
                /restful-services
       



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

你可能感兴趣的:(Resteasy 入门01)