[8.5.5.4 以降]

Web サービス・グローバル・ハンドラーの追加

Web サービス・ハンドラーをすべての Web サービス・エンドポイントに登録する必要のあるコンポーネントは、 Handler インターフェースを実装し、その実装をサービス・レジストリーに登録する必要があります。

始める前に

グローバル・ハンドラー・サービスは、jaxws-2.2jaxrs-1.1Liberty リポジトリー[8.5.5.6 以降]jaxrs-2.0、または jaxrs-2.0 client によって提供されるため、 server.xml ファイルに以下のフィーチャーまたはフィーチャーの組み合わせを指定する必要があります。
  • jaxws-2.2
  • jaxrs-1.1
  • Liberty リポジトリー[8.5.5.6 以降]jaxrs-2.0
  • Liberty リポジトリー[8.5.5.6 以降]jaxrs-2.0 client
  • jaxws-2.2 および jaxrs-1.1
  • Liberty リポジトリー[8.5.5.6 以降]jaxws-2.2 および jaxrs-2.0
  • Liberty リポジトリー[8.5.5.6 以降]jaxws-2.2 および jaxrs-2.0 client

このタスクについて

Handler SPI には各種プロパティーがあり、それらを使用して、 ENGINE_TYPE、FLOW_TYPE、および、ハンドラーが効力を持つクライアント・サイド (IS_CLIENT_SIDE) またはサーバー・サイド (IS_SERVER_SIDE) を指定できます。

Handler インターフェースを実装し、 実装クラスをサービス・レジストリーに登録する必要があります。

各 Liberty プロファイル SPI についての Java API 資料はそれぞれ別個の圧縮ファイルの形で、 ${wlp.install.dir}/dev ディレクトリーのいずれかの Javadoc サブディレクトリーにあります。

ハンドラー・バンドルのデプロイ

WebSphere® Application Server Developer Tools for Eclipse を使用して、ハンドラー・バンドルをデプロイできます。

手順

  1. 「ファイル」 > 「新規」 > 「その他」をクリックし、「OSGi」を展開します。
  2. 「OSGi バンドル・プロジェクト」をクリックし、「次へ」をクリックします。 「新規 OSGi バンドル・プロジェクト」ウィンドウが開きます。
  3. プロジェクト名として MyHandler を入力します。「ターゲット・ランタイム」リストで、「WebSphere Application Server Liberty Profile」を選択します。ランタイムが何も存在しない場合、 「新規ランタイム」をクリックして、WebSphere(r) Application Server Liberty Profile ランタイムを作成します。
  4. 「バンドルをアプリケーションに追加」をクリアします。
  5. 「次へ」を 2 回クリックし、「OSGi バンドル」ページに進みます。
  6. 「OSGi バンドル」ページで、「アクティベーター (バンドルのライフサイクルを制御する Java クラス) を生成する」をチェックします。 「アクティベーター名」myhandler.Activator のままにし、「終了」をクリックします。
  7. 「ウィンドウ」 > 「設定」 > 「プラグイン開発」 > 「ターゲット・プラットフォーム」をクリックし、「WebSphere Application Server Liberty Profile with SPI」を選択します。
    注: WebSphere Application Server Liberty Profile ランタイムを 3 で追加済みであることを確認してください。
  8. 「適用」をクリックし、「OK」をクリックします。
  9. MyHandler > BundleContent > META-INF を展開し、 プラグイン・マニフェスト・エディターを使用して MANIFEST.MF ファイルを開きます。
  10. MyHander クラスおよび MyActivitor クラスを作成します。
    ...
    import com.ibm.wsspi.webservices.handler.Handler;
    ...
    
    public class MyHandler implements Handler {
        ...
        public void handleFault(GlobalHandlerMessageContext arg0) {
            ...
        }
        public void handleMessage(GlobalHandlerMessageContext msgctxt) throws Exception {
    
            if (msgctxt.getFlowType().equalsIgnoreCase(HandlerConstants.FLOW_TYPE_OUT)) {
                }
            ...
         }
         ....
    }
    public class MyActivator implements BundleActivator {
        ...
        public void start(BundleContext context) throws Exception {
    
              final Hashtable<String, Object> handlerProps = new Hashtable<String, Object>();
               handlerProps.put(HandlerConstants.ENGINE_TYPE, HandlerConstants.ENGINE_TYPE_JAXWS);
               handlerProps.put(HandlerConstants.FLOW_TYPE, HandlerConstants.FLOW_TYPE_IN);
               handlerProps.put(HandlerConstants.IS_CLIENT_SIDE, true);
               handlerProps.put(HandlerConstants.IS_SERVER_SIDE, true);
               handlerProps.put(org.osgi.framework.Constants.SERVICE_RANKING, 3);
               MyHandler myHandler = new MyHandler();
               context.registerService(Handler.class, myHandler, handlerProps);
               ...
            }
            ...
       }
  11. 「ファイル」 > 「新規」 > 「その他」をクリックし、「OSGi」を展開します。
  12. 「Liberty フィーチャー・プロジェクト」をクリックし、「次へ」をクリックします。「Liberty フィーチャー・プロジェクト」ウィンドウが開きます。
  13. プロジェクト名として MyHandlerFeature と指定します。
  14. 「ターゲット・ランタイム」リストで、「WebSphere Application Server Liberty Profile」を選択し、「次へ」をクリックします。 「OSGi バンドル選択」ページが開きます。
  15. 「OSGi バンドル選択」ページで、「含まれるバンドル」 として MyHandler 1.0.0 を選択し、「終了」をクリックします。
  16. MyHandler プロジェクト内の Manifest:MyHandler を変更します。「MANIFEST.MF」タブをクリックし、 Import-pacakge エレメントに com.ibm.wsspi.webservices.handler を追加します。
  17. MyHandlerFeature プロジェクトを右クリックし、 「フィーチャーのインストール」をクリックして、このフィーチャーを Liberty ランタイムにインストールします。
  18. server.xml ファイルを編集して MyHandlerFeature を使用可能にします。
    <featureManager> ......
    <feature>jsp-2.2</feature>
    <feature>jaxws-2.2</feature> // you can also use one of the following feature or feature combinations: jaxrs-1.1, jaxrs-2.0, jaxrsClient-2.0, 
    jaxws-2.2 and jaxrs-1.1, jaxws-2.2 and jaxrs-2.0, jaxws-2.2 and jaxrsClient-2.0
    <feature>usr:MyHandlerFeature</feature> ......
    </featureManager>

トピックのタイプを示すアイコン タスク・トピック

インフォメーション・センターに関するご使用条件 | フィードバック


タイム・スタンプ・アイコン 最終更新: 2015 年 6 月 17日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_web_services_global_handlers
ファイル名: twlp_web_services_global_handlers.html