Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


24.3.2 ビルトイン要求メソッド識別子

ここでは,JAX-RSエンジンがサポートする要求メソッド識別子について説明します。

〈この項の構成〉

(1) javax.ws.rs.DELETEアノテーション

javax.ws.rs.DELETEアノテーションは,アノテートされたメソッドがHTTP DELETEリクエストを処理することを指定します。javax.ws.rs.DELETEアノテーションが使用できる対象を次に示します。

(2) javax.ws.rs.GETアノテーション

javax.ws.rs.GETアノテーションは,アノテートされたメソッドがHTTP GETリクエストを処理することを示します。javax.ws.rs.GETアノテーションが使用できる対象を次に示します。

(3) javax.ws.rs.HEADアノテーション

javax.ws.rs.HEADアノテーションは,アノテートされたメソッドがHTTP HEADリクエストを処理することを示します。javax.ws.rs.HEADアノテーションが使用できる対象を次に示します。

HTTP HEADリクエストを受けた場合,JAX-RSエンジンは次の優先順位で動作します。

  1. HEADアノテーションでアノテートされたメソッドがあれば呼び出す。

  2. HEADアノテーションでアノテートされたメソッドがなければ,GETアノテーションでアノテートされたメソッドを呼び出す。なお,そのメソッドが戻り値を返す場合は無視される。

HTTP HEADリクエストを処理するルートリソースクラスの例を次に示します。

package com.sample.resources;
 
import javax.ws.rs.HEAD;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
 
//ルートリソースクラス
@Path("/root")
public class Resource {
 
  //リソースメソッド
  @HEAD
  public Response getValue() {
 
    String customHeader = "foo";
    String customHeaderValue = "bar";
    int httpStatus = 200;
 
    //ResponseBuilderを使用してResponseオブジェクトを構築する
 
    return Response.status(httpStatus).header(customHeader,
        customHeaderValue).build();
  }
}

ルートリソースクラスcom.sample.resources.Resourceを含むWebアプリケーション(WARファイル)のコンテキストルートが"example"で,Webアプリケーションが"sample.com"というホストで公開されているとします。この例では,URL"http://sample.com/example/root"に対するHTTP HEADリクエストは,getValue()メソッドにディスパッチされます。getValue()メソッドが返すResponseオブジェクトがエンティティボディを含んでいても無視されます。

(4) javax.ws.rs.OPTIONSアノテーション

javax.ws.rs.OPTIONSアノテーションは,アノテートされたメソッドがHTTP OPTIONSリクエストを処理することを示します。javax.ws.rs.OPTIONSアノテーションが使用できる対象を次に示します。

HTTP OPTIONSリクエストのためのJAX-RSエンジンの動作を次に示します。

  1. javax.ws.rs.OPTIONSアノテーションでアノテートされたメソッドを呼び出す。

  2. javax.ws.rs.OPTIONSアノテーションでアノテートされたメソッドがなければ,Webリソースのアノテーションの情報を使用して,JAX-RSエンジンが自動的に応答する。

HTTP OPTIONSリクエストを処理するルートリソースクラスの例を次に示します。

package com.sample.resources;
 
import javax.ws.rs.OPTIONS;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
 
//ルートリソースクラス
@Path("/root")
public class Resource {
 
  //リソースメソッド
  @OPTIONS
  public Response getValue() {
    String entity = "Some Contents";
    String customHeader = "foo";
    String customHeaderValue = "bar";
    int httpStatus = 200;
 
    //ResponseBuilderを使用してResponseオブジェクトを構築する
 
    return Response.status(httpStatus).header(customHeader,
        customHeaderValue).entity(entity).build();
 
  }
}

ルートリソースクラスcom.sample.resources.Resourceを含むWebアプリケーション(WARファイル)のコンテキストルートが"example"で,Webアプリケーションが"sample.com"というホストで公開されているとします。この例では,URL"http://sample.com/example/root"に対するHTTP OPTIONSリクエストは,getValue()メソッドにディスパッチされます。

(5) javax.ws.rs.POSTアノテーション

javax.ws.rs.POSTアノテーションは,アノテートされたメソッドがHTTP POSTリクエストを処理することを示します。javax.ws.rs.POSTアノテーションが使用できる対象を次に示します。

(6) javax.ws.rs.PUTアノテーション

javax.ws.rs.PUTアノテーションは,アノテートされたメソッドがHTTP PUTリクエストを処理することを示します。javax.ws.rs.PUTアノテーションが使用できる対象を次に示します。