Hitachi

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


24.4.5 javax.ws.rs.core.ext.Providers

javax.ws.rs.core.ext.Providersは,デプロイされたWebリソースで動作するプロバイダを保持するコンテキストです。

ルートリソースクラスのフィールドにインジェクトされるjavax.ws.rs.core.ext.Providersの使用例を次に示します。

package com.sample.resources;
 
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.ext.Providers;
 
//ルートリソースクラス
@Path("root")
public class Resource{  
 
  //Contextアノテーションを使用してProvidersをインジェクトするフィールド
  private @Context Providers providers;
 
  //リソースメソッド
  @GET
  public String getValue() {
    //providersフィールドから例外マッピングプロバイダを取得する
    return this.providers.getExceptionMapper(RuntimeException.class);
  }
}

ルートリソースクラスcom.sample.resources.Resourceとjava.lang.RuntimeExceptionを処理できる例外マッピングプロバイダcom.sample.providers.EntityProviderReaderを含むWebアプリケーション(WARファイル)のコンテキストルートが"example"で,Webアプリケーションが"sample.com"というホストで公開されているとします。この例で,URL"http://sample.com/example/root"に対するHTTP GETリクエストでは,まずprovidersフィールドにjavax.ws.rs.core.ext.Providersコンテキストがインジェクトされ,その後HTTP GETリクエストを処理できるgetValue()メソッドが呼び出されます。このため,getValue()メソッドでprovidersフィールドからjava.lang.RuntimeExceptionを処理できる例外マッピングプロバイダを取得するとcom.sample.providers.EntityProviderReaderインスタンスが取得されます。