Resteasy入門01

7160 ワード

詳細
一、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.アプリケーションの作成

            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
        

注意:この構成はサーブレット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 LISTENRSの前に置いてください
これまで、他の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.記事の情報は主に公式サイトから