連携ターゲットの使用可能化

連携ターゲットの使用可能化には、次の活動が含まれます。
  1. 連携ターゲットを使用可能にする
  2. アクションを実装する
  3. 変換を実行する

連携ターゲットを使用可能にする手順は、次のとおりです。

  1. 次の手順で連携ターゲットを使用可能にする。
    1. 「プロジェクト・エクスプローラー」ビューで、ポートレットまたは「ポートレット・デプロイメント記述子」を 選択する。ポートレット・プロジェクト・フォルダーの下の「ポートレット・デプロイメント記述子」ノードを展開すると、ポートレットが表示されます。
    2. 目的のポートレットを右クリックし、ポップアップ・メニューから「連携」 > 「ターゲットを使用可能にする」を選択する。 「連携ターゲットを使用可能にする」ダイアログが表示されます。 もう 1 つの方法として、JSP ファイルを開き、メニューから「ページ」 > 「連携」 > 「ターゲットを使用可能にする」と選択します。
    3. 次のフィールドに値を入力する。
      データ型 (必須)
      ソース・ポートレットによって転送されるデータのデータ型名を指定します。 または、公開したいデータ型がすでに宣言済みの場合は、「ブラウズ」ボタンをクリックして「データ型の選択」ダイアログを開き、 公開したい WSDL データ型を選択します。 WSDL ファイル内のデータ型と名前空間が、各フィールドに示されます。指定した値が、WSDL ファイルの <types> エレメントでデータ型を宣言するために使用されます。
      名前空間
      この型の名前空間を指定します。たとえば「http:/www.yourco.com/c2a」です。 既存の WSDL ファイルが下に指定されている場合、このフィールドは使用不可になります。指定した値は WSDL ファイルに保管され、 タイプ属性とともに、連携ランタイムによってターゲット上のアクションとデータを一致させる際に使用されます。
      アクション (必須)
      ポートレット・アクション名を指定します。コマンド制御に関連付けされている任意の Faces アクション、および Struts 構成ファイルで定義されている任意の Struts アクションが使用可能になっている場合は、 そのアクションを「アクションの選択」ダイアログから選択できます。 このダイアログを開くには、「ブラウズ」ボタンをクリックします。 指定した値は、WSDL ファイルに <portlet:action> エレメントの名前属性として保管されます。
      パラメーター (必須)
      ポートレット・アクションが利用または生成するパラメーターの名前を指定します。 指定した値は、WSDL ファイルに <portlet:param> エレメントの名前属性として保管されます。
      バインド先 (Bound to)
      パラメーター値がどこにバインドされるかを指定します。 現在、この属性は、次の値の 1 つだけを指定できます。
      • 要求パラメーター: これは、値が PortletRequest オブジェクト内のパラメーターとしてバインドされることを指定します。 これは、boundTo 属性が省略される場合のデフォルト値です。 出力パラメーターの場合、通常、デフォルトとして別の値が指定されなければならないことに注意してください。WebSphere® Portal による PortletRequest 実装では、アクションの処理中にパラメーターを設定できません。
      • 要求属性: これは、値が PortletRequest オブジェクト内の属性としてバインドされることを指定します。
      • セッション: これは、値が PortletSession オブジェクトにバインドされることを指定します。
      ラベル
      ポートレットのユーザー・インターフェースで表示するのに適切なアクションに関する短ストリングを指定します。翻訳されたキャプションの場合、 このフィールドの語句の間にスペースではなくドット (.) を使用して、リソース・バンドルのキーの名前を指定します。 このダイアログの「リソース・バンドル」フィールドで指定されているリソース・バンドルに、 翻訳済みキャプションを key=translated caption 形式で指定します。指定した値は、WSDL ファイルに <portlet:action> エレメントのキャプション属性として保管されます。
      C2A キャプションが表示されたときの画面捕そく
      説明
      アクションのテキスト記述を指定します。翻訳された説明の場合、 このフィールドの語句の間にスペースではなくドット (.) を使用して、リソース・バンドルのキーの名前を指定します。 このダイアログの「リソース・バンドル」フィールドで指定されているリソース・バンドルに、 翻訳済み説明を key=translated description 形式で指定します。 指定した値は、WSDL ファイルに <portlet:action> エレメントの説明属性として保管されます。
      リソース・バンドル
      アクションとプロパティーのラベルと説明に対応する翻訳済みのテキストを含む、NLS リソース・ファイルのベース名を指定します。 指定したベース名は、ポートレット・デプロイメント記述子の c2a-nls-file 構成パラメーターによって定義され、空のリソース・バンドルは、「Java リソース」ノードの下に生成されます。 たとえば、nls.shippingc2a と入力した場合には、JavaSource ノード下の言語固有リソース・バンドル nls\shippingc2a<_lang>.properties を編集して、 key=translated text 形式で翻訳済みキャプションおよび説明を指定します。
      ターゲット・ポートレット (必須)
      連携ターゲットとして使用可能にするコンクリート・ポートレットを指定します。

      たとえば、次の値を指定できます。 「連携ターゲットを使用可能にする」ダイアログ

    4. 「OK」をクリックする。Click-to-Action が使用可能になっているポートレットは、 「プロジェクト・エクスプローラー」ビューにターゲット・ポートレット・アイコン (「Click-to-Action ターゲット・ポートレット」アイコン) とともに表示されます。
  2. ターゲット・ポートレット・クラスのコードが必ず次の要件を満たしていることを確認する。
    • アクションは、ポートレット・アクション、Faces アクション、 または Struts アクションのいずれかとして実装する必要があります。ポートレット・アクションの場合は、使用すべきではない PortletAction クラスではなく、単純なアクション Strings を使用する必要があります。
    • ポートレット・アクションは単一のパラメーターを受け入れる必要があります。パラメーターは、アクション宣言または登録での指定に応じて、 要求パラメーター、要求属性、セッション属性、 または action 属性 (使用すべきではない) として表示されることがあります。

    次の例は、サンプル素材集からの「連携ポートレット」アプリケーション・サンプル内の OrderDetailPortlet.java の actionPerformed() メソッドを示します。 このポートレットは、その actionPerformed() メソッド内の ORDER_ID パラメーターを受け入れます。 このパラメーターは、ポートレットの WSDL ファイル (この例では OrderDetailC2A.wsdl) のバインディング・セクション内の入力パラメーターに対応します。

    ...
    
          private static final String PREFIX = "";
          public static final String ORDER_ID = PREFIX + "orderId";
          public static final String TRACKING_ID = PREFIX + "trackingId";
    
    ...
        
            public void actionPerformed (ActionEvent event) 
        {
    //        DefaultPortletAction action = (DefaultPortletAction) event.getAction();
          String actionName = event.getActionString();
    
                    PortletRequest request = event.getRequest();
    
                    //An action causes the state to be modified
                    ShippingUtils.setLastModified(request);
    
                  if( getPortletLog().isDebugEnabled() ) {
                          getPortletLog().debug("OrderDetailActionListener - Action called");
           }
           
                    if (actionName.equals(ORDER_DETAILS)) {
                            request.getPortletSession().setAttribute(ACTION_NAME, ORDER_DETAILS);
                request.getPortletSession().setAttribute(ORDER_ID, request.getParameter(ORDER_ID));
    
                  //We do this as tracking id is an out param in the C2A WSDL file
                  //We write the tracking id in the request so it can be published by
                  //the broker in the same event cycle
                            String orderId = (String) request.getPortletSession().getAttribute(ORDER_ID);
                  OrderDetail od = ShippingDB.getOrderDetail(request.getParameter(ORDER_ID));
                            request.getPortletSession().setAttribute(ORDER_DETAIL, od);
                  request.setAttribute(TRACKING_ID, od.getTrackingId());
    
                    }  else if (actionName.equals(ORDER_ID_ENTRY)) {
                            request.getPortletSession().setAttribute(ACTION_NAME, ORDER_ID_ENTRY);
       }
        }
    ...
  3. リソース・バンドル・ファイルのラベルおよび説明に対応する翻訳済みテキストを指定する。リソース・バンドルのベース名は、「リソース・バンドル」フィールドに指定され、 ポートレット・デプロイメント記述子の c2a-nls-file 構成パラメーターによって保管されます。JavaSource ノードの下の 言語固有のリソース・バンドルを編集します。 翻訳済みキャプションおよび説明を指定するには、key=translated text 形式で「ラベル」および「説明」として指定されている key を使用します。

連携ターゲットを使用可能にする」アクションは、次のタスクを実行します。

  1. プロパティー・ブローカー・クラスを参照するサーブレット・クラス・エントリーを追加するために、web.xml を変更します。
    <servlet-class>com.ibm.wps.pb.wrapper.PortletWrapper</servlet-class>
    <init-param>
          <param-name>c2a-application-portlet-class</param-name>
       <param-value>servlet-class</param-value>
    </init-param>
  2. portlet.xml を変更します:
    • WSDL ファイルから入力プロパティーのブローカーを受け取る各コンクリート・ポートレットに構成パラメーターを追加し、 各国語リソース・ファイルのベース名を指定します。
      <config-param>
              	<param-name>c2a-action-descriptor</param-name>
              <param-value>WSDL file</param-value>
      </config-param>
      <config-param>
              	<param-name>c2a-nls-file</param-name>
              <param-value>resource bundle name</param-value>
      </config-param>
    • 各 Faces ポートレットのための構成パラメーターを追加して、ターゲット・アクション名とそのパラメーター名を指定します。
  3. プロパティー・ブローカーを使用するために、追加ライブラリー pbportlet.jar をポートレット・プロジェクト内の /WEB-INF/lib にインポートします。
  4. 次のセクションを含む WSDL ファイルを作成します。
    <definitions>
    ルートとして振る舞います。
    <types>
    データ型は、XML スキーマ・データ型 (XSD) を使用して宣言されます。
    <message>
    出力メッセージ。
    <portType>
    操作の要約コレクションを定義します。<output>.
    <binding>
    セクションをポートレット・アクション呼び出しのための連携バインディング拡張として識別するために、常に <portlet:binding> に拡張されます。
  5. 「連携ターゲットを使用可能にする」ダイアログの「ラベル」フィールドで指定された key 値 (key=translated string テキスト形式から) を含むリソース・バンドル・ファイルを生成します。
関連概念
連携ポートレットの開発
関連タスク
既存のポートレットを連携可能にする
連携ソースの使用可能化
Faces アクションを使用しない連携ターゲットの使用可能化
Click-to-Action encodeProperty の挿入
Click-to-Action encodeProperties の挿入
Click-to-Action encodeProperty の編集
Click-to-Action encodeProperties の編集
関連情報
Web サービス記述言語 (WSDL) 1.1
WebSphere Portal Information Center
XML スキーマ・パート 2: データ型

(C) Copyright IBM Corporation 2002, 2004. All Rights Reserved. (C) Copyright IBM Japan 2005