Skip navigation.

ポートレット間通信の確立

  前 次 前と次、目次/インデックス/pdf を分けるコロン 目次  

IPC の確立 : 単純な例

この節では、BEA WebLogic Workshop でイベント ハンドラ ツールを使用して、2 つのポートレット間にポーレット間通信を設定するプロセスについて説明します。1 つのポートレットを最小化すると、ポータルの別のポートレットでテキスト文字列が変更される単純な例を示します。

この例を実行するには、イベント ハンドラ ツールについて理解する必要があります。詳細については、WebLogic Workshop オンライン ヘルプ システムの「WebLogic Workshop でポートレット間通信を確立するには」を参照してください。

この実習は次の 3 つの手順で構成されます。

始める前に

開発環境を設定していない場合は、「サンプルの設定」を参照して、次の手順に従ってください。

上記の手順を実行すると、ipcDomain というポータル ドメインと、ipcTest というポータル アプリケーションが作成されます。

手順 1 : ポートレットの作成

この手順では、2 つの JSP ファイルと、それぞれのファイルを表示するための JSP ポートレットを作成します。また、2 つのポートレット間の通信を実現するために必要な指示を含むバッキング ファイルも作成し (バッキング ファイルの詳細については「バッキング ファイルについて」を参照)、一方のポートレットにイベント ハンドラを追加します。ポートレットを作成して、バッキング ファイルを追加した後で、アプリケーションをブラウザでテストします。

注意 : この手順を進める前に、WebLogic Workshop が実行中であり、Web アプリケーション ノード [ipcTest] が展開していることを確認します。

JSP ファイルとポートレットの作成

ポートレットによって表示する JSP ファイルを作成するには、次の手順に従います。

  1. [ipcTest] ノードの下の [index.jsp] をダブルクリックします。
  2. index.jsp がデザイン ビューに表示されます (図 3-1)。

    図 3-1 デザイン ビューでの index.jsp


     
  3. [New Web Application Page] という文字列をクリックして強調表示します。
  4. テキストの周囲にボックスが表示され、プロパティ エディタの [General] の下に [innerText] フィールドが表示されます (図 3-2)。

    図 3-2 プロパティ メニューの [innerText] フィールド


     
  5. [innerText] フィールドの [...] ボタンをクリックして [innerText] ダイアログ ボックスを開き、[New Web Application Page] を Minimize Me!!! という文字列で置き換えます。[OK] をクリックします。
  6. ダイアログ ボックスが閉じ、図 3-3 のように Minimize Me!!! が [innerText] フィールドとデザイン ビューに表示されます。

    図 3-3 JSP ファイルに追加された新しいテキスト


     
  7. [ファイル|名前を付けて保存...] を選択します。
  8. ファイルに aPortlet.jsp という名前を付けて保存します。
  9. アプリケーション ツリーで [aPortlet.jsp] を右クリックし、コンテキスト メニューから [ポートレットの生成...] を選択します。
  10. [ポートレットの詳細] ダイアログ ボックス (図 3-4) が表示されます。aPortlet.jsp が [コンテンツ URI] フィールドに表示されていることを確認します。

    図 3-4 ポートレットの [ポートレットの詳細] ダイアログ ボックス


     
  11. [最小化可能]、[最大化可能]、および [削除可能] を選択し、[完了] をクリックします。
  12. aPortlet.portlet がアプリケーション ツリーの ipcTest の下に表示されます。

  13. aPortlet.jsp はまだ開いている必要があります。開いていない場合は、再度開きます。
  14. [ファイル|名前を付けて保存] を選択します。
  15. ['aPortlet.jsp' に名前を付けて保存] ダイアログ ボックスの [名前] フィールドに bPortlet.jsp と入力し、[保存] をクリックします。
  16. JSP の表示で [ソース ビュー] をクリックします。
  17. JSP ファイルの XML コードが表示されます。

  18. コード リスト 3-1 のコードをコピーし、JSP の <netui:html> から </netui:html> までのコードを置換します。

  19.  

コード リスト 3-1 bPortlet.jsp の新しい JSP コード

<netui:html>
<% String event = (String)request.getAttribute("minimizeEvent");%>
<head>
<title>
Web Application Page
</title>
</head>
<body>
<p>
Listening for portlet A minimize event:<%=event%>
</p>
</body>
</netui:html>

ソースは、図 3-5 の例のようになります。

図 3-5 更新された JSP ソース


 
  • 保存ボタンをクリックするか [ファイル|保存] を選択して、ファイルを保存します。
  • 手順 6 と 7 を繰り返して、bPortlet の JSP ポートレットを作成します。
  • バッキング ファイルの作成

    次に、2 つのポートレット間の通信を実現するために必要な指示を含むバッキング ファイルを作成する必要があります (バッキング ファイルの詳細については「バッキング ファイルについて」を参照)。バッキング ファイルを作成するには、次の手順に従います。

    1. [WEB-INF] ノードを展開し、[src] を右クリックしてコンテキスト メニューを開きます。
    2. [新規作成|フォルダ] を選択します。
    3. [新しいフォルダの作成] ダイアログ ボックスが表示されます。

    4. [新しいフォルダ名を入力してください] に backing と入力し、[OK] をクリックします。
    5. フォルダ backingWEB-INF/src の下に表示されます。

    6. [backing] を右クリックし、[新規作成|Java Class] を選択します。
    7. [新しいファイル] ダイアログ ボックスが表示されます。

    8. [ファイル名] に Listening.java と入力し、[作成] をクリックします。
    9. 新しい Java クラスのソース ビューが表示されます (図 3-6)。

      図 3-6 Listening.java ソース ファイル


       
    10. コード リスト 3-2 のコードを Listening.java にコピーします。

    11.  

    コード リスト 3-2 Listening.java のバッキング ファイル コード

    package backing;
    import com.bea.netuix.servlets.controls.content.backing.AbstractJspBacking;
    import com.bea.netuix.events.Event;
    import com.bea.netuix.events.GenericEvent;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class Listening extends AbstractJspBacking 
    { 
        private static boolean minimizeEventHandled = false;

    public void handlePortalEvent(HttpServletRequest request,
    HttpServletResponse response, Event event)
    {
    minimizeEventHandled = true;
    }
           public boolean preRender(HttpServletRequest request, HttpServletResponse
    response)
    {
    if (minimizeEventHandled){
                         request.setAttribute("minimizeEvent","minimize event handled");
    }else{
    request.setAttribute("minimizeEvent",null);
    }
         // reset
    minimizeEventHandled = false;
    return true;
    }
    }
    1. ソースは、図 3-7 のようになります。
    2. 図 3-7 バッキング ファイル コードが更新された listening.java


       
    3. [ファイル|保存] を選択するか [保存] ボタンをクリックして、Listening.java を保存します。

    バッキング ファイルの追加

    ここでは、「バッキング ファイルの作成」で作成したバッキング ファイルを bPortlet に追加します。次の手順を実行します。

    1. アプリケーション ツリーで、[bPortlet.portlet] をダブルクリックして開きます。
    2. 図 3-8 に示すように、プロパティ エディタの [ポートレット プロパティ] の下の [バッキング ファイル] フィールドに backing.Listening と入力し、〔Tab〕を押します。
    3. 図 3-8 プロパティ エディタでのバッキング ファイルの追加


       
    4. ファイルを保存します。

    イベント ハンドラの bPortlet への追加

    bPortlet にイベント ハンドラを追加するには、次の手順に従います。

    注意 : bPortlet.portlet が WebLogic Workshop に表示されている必要があります。表示されていない場合は、[アプリケーション] パネルで ipcTest の下にある bPortlet.portlet を見つけてダブルクリックします。

    1. プロパティ エディタで [イベント ハンドラ] の横の [...] ボタンをクリックします。
    2. [ポートレット イベント ハンドラ] ダイアログ ボックス (図 3-9) が表示されます。

      図 3-9 [ポートレット イベント ハンドラ] ダイアログ ボックス


       
    3. [ハンドラを追加] をクリックし、イベント ハンドラのドロップダウン リストを開きます。
    4. [ポータル イベントの処理] を選択します。
    5. [ポートレット イベント ハンドラ] ダイアログ ボックスが展開し、詳細を入力できるようになります (図 3-10)。

      図 3-10 展開した [ポートレット イベント ハンドラ] ダイアログ ボックス


       
    6. [ポートレット] を除くすべてのフィールドでデフォルトを受け入れます。
    7. [ポートレット] では [...] ボタンをクリックします。
    8. ipcTest の [開く] ダイアログ ボックスが表示されます。

    9. [aPortlet.portlet] をダブルクリックします。
    10. [開く] ダイアログ ボックスが閉じ、portlet_1 が [リスン先] リストと [ポートレット] フィールドに表示されます (図 3-11)。portlet_1 は、イベント ハンドラがリスンするポートレットの定義ラベルです。

      図 3-11 portlet_1 の追加


       
    11. [イベント] ドロップダウン コントロールをクリックして、ハンドラがリスンできるポータル イベントのリストを開き、図 3-12 に示すように [onMinimize] を選択します。
    12. 図 3-12 [イベント] ドロップダウン リスト


       
    13. [アクションを追加...] をクリックしてアクションのドロップダウン リストを開き、図 3-13 に示すように [BackingFile メソッドの呼び出し] を選択します。
    14. 図 3-13 [アクションを追加] ドロップダウン リスト


       

      図 3-14 のように [BackingFile メソッドの呼び出し] が [イベント] リストに [ポータル イベントの処理] の子として表示されます。

      図 3-14 アクションが追加された [イベント] リスト


       
    15. [メソッド] で、handlePortalEvent を選択または入力します (図 3-15)。
    16. 図 3-15 バッキング ファイル メソッドの追加


       
    17. [OK] をクリックします。
    18. イベント ハンドラが追加されます。プロパティ エディタの [イベント ハンドラ] フィールドに [1 つのイベント ハンドラ] と表示されていることに注意します。

    19. ファイルを保存します。

    手順 2 : アプリケーションのテスト

    アプリケーションをテストするには、次の手順に従います。

    1. 次の手順に従って、ipcLocal.portal というポータルを作成します。
      1. [ipcTest] を右クリックし、[新規作成|ポータル] を選択します。
      2. [新しいファイル] ダイアログ ボックスの [ファイル名] フィールドに ipcLocal と入力します。
      3. [作成] をクリックします。
      4. ポータルが正常に作成された場合は、ポータルのレイアウトが WebLogic Workshop に表示されます。

    2. 図 3-16 に示すように、データ パレットから [aPortlet] と [bPortlet] の両方をポータル レイアウトにドラッグします。
    3. 図 3-16 ポートレットが追加されたポータル レイアウト


       
    4. 保存ボタンをクリックするか [ファイル|保存] を選択して、ポータルを保存します。
    5. [ポータル] メニューを開き、[現在のポータルを開く] を選択します。
    6. ポータルがブラウザに表示されます (図 3-17)。

      図 3-17 ブラウザでの ipcLocal ポータル


       
    7. aPortlet を最小化します。
    8. bPortlet のコンテンツが変更されることに注意してください (図 3-18)。

      図 3-18 aPortlet を最小化したときの ipcLocal ポータル


       

    まとめ

    この実習では、「サンプルの設定」で作成したポータル アプリケーション コンポーネントに対して 2 つの JSP ポートレットを追加しました。1 つ目のポートレット aPortlet はごく単純ですが、2 つ目のポートレット bPortlet は、複雑な JSP ファイルを表示し、バッキング ファイルを利用し、ポータル イベント ハンドラを含みます。アプリケーションのテストでは、aPortlet でイベントが発生したときに 2 つのポートレットが通信する様子を確認しました。これは、ローカル ポートレット間通信と呼ばれます。

     

    Skip navigation bar  ページの先頭 前 次