ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド
11g リリース1 (11.1.1.6.0)
B72084-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

60 ポートレット・ウィザードを使用したポートレットの作成

この章では、WebCenter Portalポートレット・プロデューサ・アプリケーションでJSR 286 Javaポートレットの作成ウィザードおよびOracle PDK-Javaポートレットの作成ウィザードを使用して、Javaポートレット仕様(JSR 286)、またはOracle Portal Developer Kit-Java (PDK-Java)に基づいてJavaポートレットを作成する方法について説明します。

この章の内容は、次のとおりです。

60.1 Javaポートレットの概要

この項の内容は、次のとおりです。

60.1.1 標準ベースのJavaポートレットの概要

これまでポータル開発プロジェクトに従事する組織では、アプリケーションの統合が主要な課題でした。ユーザーは、単一のポータル・プラットフォーム専用のAPIを使用してポートレットを開発してきましたが、多くの場合、特定のポータル・ベンダーによるポートレットでは不十分でした。このような状況は、次の標準を導入することで大きく変わりました。

  • Web Services for Remote Portlets (WSRP)

  • Java Specification Request (JSR) 286

この2つの標準によって、異なる複数のポータル製品を相互運用できるポートレットを開発できるため、組織におけるポートレットの可用性が拡大します。この可用性の拡大によって、ポータルの構築時には、組織の生産性を大幅に向上させることができます。

WSRPはWebサービスの標準です。この標準によって、ポータルまたは他の中間Webアプリケーションを使用する、ユーザー対象で視覚的なWebサービスのプラグ・アンド・プレイが可能になります。1つの標準であるWSRPによって、標準対応のコンテナとWSRPポータル間の相互運用が実現します。WSRPでは、次のものを定義します。

  • WSRPサービスを起動するためのWeb Services Definition Language (WSDL)インタフェース

  • WSRPサービスで発生するマークアップのためのマークアップ・フラグメント・ルール

  • WSRPサービスとメタデータを公開、検索およびバインドするためのメソッド

JSR 286は、ポートレットとポータル間の相互運用を可能にし、集計、パーソナライズ、表示形式およびセキュリティの各領域に対処する一連のAPIを定義する仕様です。JSR 286では、次の機能を提供するコンテナ・サービスを定義します。

  • ポートレット機能をコーディングするためのポートレットAPI

  • ポートレット・コンテナ内でユーザー相互作用を作成するためのURLリライティング・メカニズム

  • ポートレットのセキュリティとパーソナライズ

  • ポートレット・イベントおよびパブリック・レンダラ・パラメータを使用したポートレット間通信

オラクル社はOASIS (WSRP)やJCP (JSR 168、286、301、329など)の各標準化機関で策定されたものを含め、ポートレットの標準化に積極的に参加しています。


注意:

HTMLフォームはgetまたはpostメソッドを使用して実行できますが、WSRP標準ではコンシューマはpostメソッドのみの使用を要求されます。getメソッドのサポートは、WSRP標準に則ってオプション扱いになっています。アプリケーション・コンシューマはgetメソッドをサポートする必要がないので、ポートレット開発の際はpostメソッドを使用することをお薦めします。


WSRPとJSR 286の関連

WSRPは、ポートレット・クライアント(たとえば、WebCenter Portal: Frameworkアプリケーション)とリモート・サーバーで実行されるポートレット・コンテナ間の通信プロトコルです。実行するポートレット・プロデューサ・アプリケーションのJavaポートレットAPIをJSR 286で記述します。これらの標準を組み合せることで、開発者は、内部または外部のソースからのアプリケーションをポートレットとしてWSRPポータルに統合できます。ページの構築は、JDeveloperの「リソース・パレット」やアプリケーション・ナビゲータの「アプリケーション・リソース」ペインでポートレットを選択するのと同様に簡単に行えるようになりました。

図60-1に、WSRP仕様のアーキテクチャを示します。


注意:

図60-1は、WSRPを使用したJSR 286ポートレットの使用方法を示しています。


図60-1 WSRP仕様のアーキテクチャ

JSPポートレット・コンテナおよびWSRPポータルを表示。
「図60-1 WSRP仕様のアーキテクチャ」の説明

WebCenter Portal: Frameworkにより、Frameworkアプリケーションと、JavaポートレットAPI間および既存のAPI (PDK-Java)間の両方の通信がサポートされます。

図60-2に、WSRPサポートのアーキテクチャを示します。JSR 286準拠のポートレット・コンテナはWSRPプロトコルを使用して通信を行い、PDK-Javaポートレット・コンテナはOracleの専用SOAPプロトコルを使用して通信を行うことに注意してください。

図60-2 WebCenter Portalポートレットのアーキテクチャ

PDK-JavaポートレットとJPSポートレット、およびWSRPポータルを表示。
「図60-2 WebCenter Portalポートレットのアーキテクチャ」の説明

JSR 286セキュリティ概念をWSRPを介して公開する方法については、第69.17項「WS-Securityを使用したWSRPプロデューサを介するアイデンティティ伝播の保護」を参照してください。

60.1.2 PDK-Javaポートレットの概要

PDK-Javaは、一般的に必要なユーティリティを提供することでJavaポートレットを簡単に開発できるフレームワークを提供し、これまでの開発スキルや、JSP、サーブレット、静的HTMLページなどの既存アプリケーション・コンポーネントを活用できるようにします。また、WebCenter Portal: Frameworkとプロデューサ間の通信の複雑さに直接対処する必要なしにポートレットを作成できます。

PDK-Javaのフレームワークは次の領域に分けられます。

  • プロデューサ・アダプタ: これにより、開発者は、Webプロデューサとの通信用にWebCenter Portal: Frameworkによって定義されたHTTP構文を使用しないで済むようになります。WebCenter Portal: FrameworkとJava Webプロデューサ間で受け渡しされる情報が翻訳されます。プロデューサは、アダプタがないと、ポートレットを管理するのみでなく、所定の言語でこの情報を直接WebCenter Portal: Frameworkに伝達する必要があります。アダプタによって、Webプロデューサはポータル言語を理解する必要がなくなり、逆も同様です。

  • プロバイダ・インタフェース: プロバイダ・アダプタとの統合にJava実装で必要となるAPI (関数)を定義します。プロデューサ・アダプタは、Frameworkアプリケーションからのメッセージを受信して、プロデューサ・インタフェースへのコールに変換し、プロデューサのレスポンスをアプリケーションが理解できる書式に翻訳します。プロデューサ・インタフェースには、プロデューサが実装するメソッドを定義するためのJavaクラスのセットが含まれ、多くの場合、標準実装が用意されています。主なクラスには次のものがあります。

    • ProviderDefinition (oracle.portal.provider.v2.ProviderDefinition)

    • ProviderInstance (oracle.portal.provider.v2.ProviderInstance)

    • PortletDefinition (oracle.portal.provider.v2.PortletDefinition)

    • PortletInstance (oracle.portal.provider.v2.PortletInstance)

    • ParameterDefinition (oracle.portal.provider.v2.ParameterDefinition)

    • EventDefinition (oracle.portal.provider.v2.EventDefinition)

  • プロデューサ・ランタイム: プロデューサ・インタフェースの仕様に準拠する基本実装です。プロデューサ・ランタイムには、個々のプロデューサ・インタフェースを実装するためのデフォルト・クラスのセットが含まれ、PDK-Javaに付属のレンダリング、パーソナライズおよびセキュリティのフレームワークを活用できるようにします。このようなクラスと関連フレームワークは、WebCenter Portal: Frameworkリクエストの共通関数を実装し、プロデューサを構成するための宣言メカニズムを提供することで、プロデューサの開発を簡略化します。プロデューサ・ランタイムを使用すると、Frameworkアプリケーションとの通信に必要なインフラストラクチャではなく、ポートレット自体に開発労力を集中できます。プロデューサ・ランタイムの標準動作が要件を満たさない場合に、特定の動作の拡張または変更を容易に行うことができます。主なクラスには次のものがあります。

    • DefaultProviderDefinition (oracle.portal.provider.v2.DefaultProviderDefinition)

    • DefaultProviderInstance (oracle.portal.provider.v2.DefaultProviderInstance)

    • DefaultPortletDefinition (oracle.portal.provider.v2.DefaultPortletDefinition)

    • DefaultPortletInstance (oracle.portal.provider.v2.DefaultPortletInstance)

    • PortletRenderer (oracle.portal.provider.v2.render.PortletRenderer)

    • PortletPersonalizationManager (oracle.portal.provider.v2.personalize.PortletPersonalizationManager)

    • PortletSecurityManager (oracle.portal.provider.v1.http.DefaultSecurityManager)

  • プロデューサ・ユーティリティ: ポートレットのレンダリングを簡略化するメソッドを提供します。このユーティリティには、有効なリンク(hrefs)を構築するメソッド、ポートレットのコンテナ(ヘッダーを含む)をレンダリングするメソッド、ページ内で動作するHTMLフォームをレンダリングするメソッドおよびポートレット・キャッシュをサポートするメソッドが含まれています。

PDK-Javaの詳細は、Oracle Fusion Middleware Oracle PDK Java Java APIリファレンスを参照してください。

60.2 Javaポートレットの作成

開始する前に、次のことを確認してください。


注意:

この項の図では、JDeveloperのデフォルトの「ルック・アンド・フィール」(「Oracle」)および「テーマ」(「Fusionブルー」)が設定されています。これらの設定を変更している場合は、表示される画面が少し異なりますが、内容および機能は同じです。「ルック・アンド・フィール」および「テーマ」の設定を変更するには、「ツール」メニューから「設定」を選択し、次に「環境」を選択します。


この項の内容は、次のとおりです。

60.2.1 JSR 286 Javaポートレットの作成方法

JDeveloperでJSR 286 Javaポートレットの作成ウィザードを使用すると、ポートレットをWSRP 2.0で迅速かつ容易に公開できます。このウィザードでは、WSRP 1.0とWSRP 2.0の両方がサポートされています。

JSR 286 Javaポートレットの作成ウィザードでは、実装するポートレット・モード、および各モードで使用する実装メソッド(JSP、HTTPサーブレット、JavaクラスまたはHTML)を選択できます。次に、ウィザードによって、選択したモードごとに簡単な実装が作成されます。

JDeveloperのウィザードを使用してJSR 286 Javaポートレットを作成する手順は次のとおりです。

  1. JDeveloperアプリケーション・ナビゲータで、ポートレットの作成先であるアプリケーションを開きます。

    アプリケーションはポートレットの作成用にスコープ設定されている必要があります。これを簡単に実現するには、ポートレット・プロデューサ・アプリケーション・テンプレートを使用します。


    注意:

    WebCenter PortalのFrameworkアプリケーション・テンプレートを使用して構築されたアプリケーションは、ポートレット作成用にスコープ設定されていません


  2. ポートレットの作成先であるプロジェクト(たとえば、「ポートレット」)を右クリックし、「新規」を選択します。

  3. 「新規ギャラリ」で、「Web層」を開き、「ポートレット」を選択して、「規格に基づいたJavaポートレット(JSR 286)」を選択し、「OK」をクリックします。


    注意:

    プロジェクトにJSR 286ポートレットがすでに含まれている場合は、次の方法で新しいポートレットを作成することもできます。

    • portlet.xmlを右クリックして「ポートレットの追加」を選択します。

    • portlet.xmlを開き、「デザイン」タブをクリックし、「ポートレット」タブの「追加」アイコンをクリックします。


  4. JSR 286 Javaポートレットの作成ウィザードの「一般ポートレット情報」ページ(図60-3)で、「名前」フィールドに表示されているデフォルト名をポートレットの目的を説明する名前に変更します。

    図60-3 「一般ポートレット情報」ページ

    「一般ポートレット情報」ページを表示。
    「図60-3 「一般ポートレット情報」ページ」の説明

  5. 「クラス」フィールドで、ポートレットのクラスの名前を入力します。表示されているデフォルト名を受け入れることも、独自の名前を指定することもできます。独自の名前を指定する場合、有効なJava名である必要があります。

  6. 「パッケージ」でクラスを作成するパッケージの名前を入力するか、ドロップダウン・リストからパッケージを選択します。

    必要であれば、「参照」ボタンをクリックして、プロジェクト内でパッケージを見つけます。特定のパッケージを選択しない場合、ウィザードではプロジェクトのデフォルト・パッケージが使用されます。

  7. 「デフォルト言語」ドロップダウン・リストから、ポートレットでサポートするデフォルトの言語を選択します。ウィザードでは、デフォルトで英語が使用されます。

  8. ポートレットで編集モードをサポートする場合は、「ユーザーがポートレット・コンテンツを編集できるようにします」を選択します。ウィザードでは、このオプションがデフォルトで選択されています。

    編集モードを使用すると、ユーザーが実行時にポートレットをパーソナライズできるようになります。詳細は、第58.1.3.2項「編集モード」を参照してください。

    このオプションを選択すると、ポートレットの編集モードの実装の詳細を、後でウィザードで指定できます。

  9. 「次へ」をクリックします。

  10. 「追加ポートレット情報」ページ(図60-4)の、「ポートレット・タイトル」フィールドで、ポートレットを説明するタイトルを入力します。

    ポートレットのタイトルは「リソース・パレット」または「アプリケーション・リソース」パネルに表示されるため、有用なポートレットがどれかをユーザーが特定できるようなタイトルにします。ポートレット・タイトルは、ポートレットがページ上に現れるときに、ポートレット・ヘッダーにも表示されます。

    図60-4 「追加ポートレット情報」ページ

    「名前と属性」ページを表示。
    「図60-4 「追加ポートレット情報」ページ」の説明

  11. 「表示名」「短いタイトル」「説明」および「キーワード」属性は、Frameworkアプリケーションには実装されません。これらのフィールドには、ポートレットが他のアプリケーションで使用される見込みがないかぎり、値を入力する必要はありません。

    たとえば、Oracle Portalではポートレット・リポジトリでポートレットの表示名が使用されます。

  12. ウィザードのこの時点で「終了」をクリックし、残りのすべての設定にデフォルト値を使用することで、ポートレットをただちに作成できます。

    さらにポートレットの詳細を指定するには、「次へ」をクリックし、残りの手順に従います。

  13. 「コンテンツ・タイプとポートレット・モード」ページ(図60-5)の、「コンテンツ・タイプとポートレット・モード」リストで、「表示」を選択します。

    図60-5 「コンテンツ・タイプとポートレット・モード」ページ

    「コンテンツ・タイプとポートレット・モード」ページを表示。
    「図60-5 「コンテンツ・タイプとポートレット・モード」ページ」の説明

  14. 「実装メソッド」セクションで、ポートレットの表示モードの実装方法を次から選択します(表示モードの詳細は、第58.1.3.1項「表示モード」を参照してください)。

    • JSPの生成: そのポートレット・モードに対してスケルトンJSPファイルを生成する場合に選択します。対応するフィールドにJSPの名前を入力するか、デフォルトを受け入れます。

      ウィザードでの作業を完了すると、生成されたJSPがアプリケーション・ナビゲータに表示され、これを選択することで開発をさらに進めることができます。これは、すべてのポートレット表示モードでのデフォルトの選択です。

    • ADF-Faces JSPXの生成: ADF-Facesコンポーネントを追加できるページを生成する場合に選択します。対応するフィールドにJSPXの名前を入力するか、デフォルトを受け入れます。


      注意:

      このオプションを選択すると、ポートレットの実装クラスはjavax.portlet.GenericPortletのサブクラスではなく、oracle.portlet.bridge.adf.application.ADFBridgePortletのサブクラスとして作成されます。つまり、ウィザードにより、Oracle JSF Portlet Bridgeを使用するポートレット・プロデューサ・アプリケーションが生成されます。Oracle JSF Portlet Bridgeの詳細は、第59章「Oracle JSF Portlet Bridgeを使用したポートレットの作成」を参照してください。


    • パスへのマップ: ポートレット・プロデューサ・アプリケーションにあるWebリソース(ページなど)にポートレット・モードをマップする場合に選択します。ウィザードによってリソースは生成されません。対応するフィールドに名前とパスを入力します。必要であれば、ウィザードの完了後にこのリソースを作成できます。

      これを選択すると、ターゲットのリソースまたはファイルを自身で書き込む必要があります。ターゲットとしては、たとえば、JSP、サーブレットあるいはHTMLファイルを指定できます。この選択により、生成されたポートレットJavaクラスにコードが入力され、指定したモードのリクエストが指定したターゲットにルーティングされます。

    • カスタム・コード: カスタム・コード・オブジェクトを介して、ポートレット・モードを実装する場合に選択します。このオブジェクトは後から作成する必要があります。これを選択するとスケルトン・メソッドが生成され、生成されたポートレットJavaクラス内にコンテンツ(private void doMODE_NAMECONTENT_TYPE)がレンダリングされます。役に立つコンテンツをレンダリングするには、このコードを更新する必要があります。


    注意:

    このポートレット・モードで異なるコンテンツ・タイプ(たとえば、text/xml)をサポートする場合は、手順17を参照してください。


  15. ウィザードの最初のページで「ユーザーがポートレット・コンテンツを編集できるようにします」を選択した場合は、「編集」を選択してから編集モードの実装メソッドを選択します(編集モードの詳細は、第58.1.3.2項「編集モード」を参照してください)。

  16. ポートレットで別のポートレット・モードを実装する手順は次のとおりです。

    1. 「コンテンツ・タイプとポートレット・モード」リストで、該当するコンテンツ・タイプ(たとえば、「text/html」)の下の既存のモード(たとえば、「表示」)を選択します。

    2. 「追加」をクリックします。

    3. 「ポートレット・モード」ダイアログで、必要なモードを「選択済」リストに移動して、「OK」をクリックします。

      「ポートレット・モード」ダイアログには、JSR 286でサポートされている標準モードと、WebCenter Portalでサポートされている拡張モードがリストされます。

      詳細は、第58.1.3項「ポートレット・モード」を参照してください。

    4. 各ポートレット・モードを選択し、手順14の説明に従ってコンテンツのレンダリングに使用する実装メソッドを指定します。

  17. 新しいコンテンツ・タイプを追加する手順は次のとおりです。

    1. 「コンテンツ・タイプとポートレット・モード」リストで、既存のコンテンツ・タイプ(たとえば、「text/html」)を選択します。

    2. 「追加」をクリックします。

    3. 「コンテンツ・タイプ」ダイアログで、必要なコンテンツ・タイプを「選択済」リストに移動して、「OK」をクリックします。

  18. 「次へ」をクリックします。

    先ほど、ウィザードの「一般ポートレット情報」ページで、「ユーザーがポートレット・コンテンツを編集できるようにします」を選択していた場合、カスタマイズ・プリファレンスを作成して、ポートレットのユーザーがポートレットに対して実行時に値を指定できるようにすることができます。手順19に進んでください。

    このオプションを選択しなかった場合は、手順24に進んでください。

  19. 「カスタマイズ・プリファレンス」ページ(図60-6)で、「追加」をクリックして、ポートレットに新しいカスタマイズ・プリファレンスを追加します。

    デフォルトでは、ユーザーがポートレットのタイトルをカスタマイズできるようにカスタマイズ・プリファレンスが追加されます。

    図60-6 「カスタマイズ・プリファレンス」ページ

    「カスタマイズ・プリファレンス」ページを表示。
    「図60-6 「カスタマイズ・プリファレンス」ページ」の説明

  20. 「新規プリファレンスの追加」ダイアログの「名前」フィールドに、新しいプリファレンスの名前を入力します。

    名前は、そのポートレット内で一意のものを指定する必要があります。文字、数字およびアンダースコアのみを使用します。

  21. 「デフォルト値」フィールドに、新規プリファレンス用のデフォルト値を1つ以上入力します。複数の値はカンマで区切ります。

  22. プリファレンスを翻訳可能にするには、「プリファレンスの翻訳」チェック・ボックスを選択してから「OK」をクリックします。

    JDeveloperにより、翻訳可能なプリファレンスのリソース・バンドル・クラスが、翻訳できる文字列で生成されます。実行時に、ポートレットはリソース・バンドルのエントリを参照します。


    注意:

    プリファレンス名は常に翻訳されますが、デフォルト値は必ずしも翻訳する必要はありません。たとえば、値が整数の場合、翻訳は不要です。


  23. 前述の手順を繰り返し、さらにプリファレンスを追加します。終了したら、「次へ」をクリックします。

  24. 「セキュリティ・ロール」ページ(図60-7)で、既存のセキュリティ・ロールをポートレットに追加するため、セキュリティ・ロールを選択して「選択済」リストに移動します。

    セキュリティ・ロールを使用すると、ポートレットへの段階的なアクセス・レベルが設定できます。たとえば、表示権限を持つユーザーは、ポートレットを表示できますが、編集はできません。カスタマイズ権限を持つユーザーは、ポートレットの設定をカスタマイズできます。管理権限を持つユーザーは、ポートレットに関連付けられているすべての使用可能な機能を実行できます。

    「使用可能」リストには、ポートレットの作成先のアプリケーション用に定義されたセキュリティ・ロールが表示されます。セキュリティ・ロールを「選択済」リストに移動すると、アプリケーションのポートレット・デプロイメント・ファイル(portlet.xml)にそのセキュリティ・ロールの参照が作成され、これがアプリケーションのWebデプロイメント・ファイル(web.xml)内のセキュリティ・ロールを参照します。

    web.xmlを編集することで、アプリケーション用の新しいセキュリティ・ロールを作成できます。詳細は、JDeveloperのオンライン・ヘルプを参照してください。

    図60-7 「セキュリティ・ロール」ページ

    「セキュリティ・ロール」ページを表示。
    「図60-7 「セキュリティ・ロール」ページ」の説明

  25. 「次へ」をクリックします。

  26. 「キャッシュ・オプション」ページ(図60-8)で、「キャッシュ・ポートレット」を選択してポートレットで有効期限ベースのキャッシュができるようにします。

    このオプションを選択することにより、ポートレット・キャッシュがポートレット・コンテナによって管理されることを指定します。ポートレット自体で、指定のレスポンスのコンテンツをキャッシュすることもできます。このページで指定する設定は、レスポンスに対するキャッシュ条件がポートレットで指定されていない場合にのみ適用されます。

    ポートレットについてデフォルトでキャッシュしない場合は、「デフォルトでキャッシュしない」を選択します。この場合、ウィザードではキャッシュ有効期限が0秒に設定されます。前述したとおり、このキャッシュ設定が有効となるのは、レスポンスに対するキャッシュ条件がポートレットで指定されていない場合のみです。

    ここでキャッシュしないように設定し、後で、ポートレットについてデフォルト・キャッシングを実装することにした場合は、ウィザードで生成したportlet.xmlファイルのキャッシュ有効期限の値を、0より大きい数字に変更できます。

    詳細は、第61.2.9.1項「有効期限ベースのキャッシュの実装」を参照してください。

    有効化ベースのキャッシュの実装方法の詳細は、第61.2.9.2項「有効化ベースのキャッシュの実装」を参照してください。

    図60-8 「キャッシュ・オプション」ページ

    「キャッシュ」ページを表示。
    「図60-8 「キャッシュ・オプション」ページ」の説明

  27. ポートレットをキャッシュすることを選択した場合、「デフォルト失効条件」セクションで次の中から選択します。

    • キャッシュ・コンテンツ有効期限(秒): キャッシュされたポートレット・コンテンツを、一定の時間が経つと期限切れになるようにする場合。期限は対応するフィールドで指定します。

    • キャッシュ・コンテンツ失効なし: キャッシュされたポートレット・コンテンツを無期限にする場合。ポートレットに変更する見込みのない静的コンテンツが含まれている場合、このオプションを選択できます。

  28. 「次へ」をクリックします。

  29. 「初期化パラメータ」ページ(図60-9)では、ポートレットに初期化パラメータを追加できます。

    初期化パラメータによって、.warファイルの内容を決定するアプリケーション開発者が指定されます。このファイルは、JNDI変数のかわりに、アプリケーション(サーブレットやポートレット)のすべてのコンポーネントの動作を互換性のある方法で構成するために使用します。これらの初期化パラメータは、portlet.xmlファイルに追加されます。

    1. 「新規」をクリックしてポートレットに新しい初期化パラメータを追加します。

    2. 新しく追加された行で、各フィールドをダブルクリックしてパラメータに「名前」、デフォルトの「値」および「説明」を指定します。

    3. これらの手順を繰り返し、さらに初期化パラメータを追加します。

    4. 終了したら、「終了」をクリックします。

    図60-9 「初期化パラメータ」ページ

    「初期化パラメータ」ページを表示。
    「図60-9 「初期化パラメータ」ページ」の説明

60.2.2 JDeveloperのウィザードを使用してJSR 286 Javaポートレットを作成した場合の処理

JDeveloperのウィザードを使用してJSR 286 Javaポートレットを作成した場合、JDeveloperによりポートレットのデフォルトの実装が生成されます。特に、次のファイルが作成されます。

  • 2つのJavaクラス

    • portletName.javaは、ポートレット・コンテナによって起動され、ポートレット標準で必要なメソッドがすべて含まれています。

    • portletnameBundle.javaには、ポートレット用の翻訳文字列がすべて含まれています。

  • portlet.xml: アプリケーションのポートレット・デプロイメント・ディスクリプタ・ファイルです。

  • web.xml: アプリケーションのWebデプロイメント・ディスクリプタ・ファイルです。

  • ポートレット用に選択した各ポートレット・モード用のファイル

    • ポートレット・モードで「JSPの生成」を選択した場合、そのモード用のJSPページが作成されます(view.jspなど)。

    • 「ADF-Faces JSPXの生成」を選択した場合、そのモード用のJSPXページが作成されます(view.jspxなど)。このページには、Facesコンポーネントを追加できます。

    • 「パスへのマップ」を選択した場合、既存のリソースの中にポートレット・モード用のコードが存在するため、追加のファイルは作成されません。コードはポートレットのJavaクラスに追加され、指定されたターゲットにリクエストをルーティングします。

    • 「カスタム・コード」を選択した場合、追加のファイルは作成されませんが、ポートレット・モード用のコードはポートレットのJavaクラスに存在します。

図60-10に示すとおり、アプリケーション・ナビゲータでこれらすべてのファイルを見ることができます。

図60-10 JSR 286 Javaポートレット用に生成されるファイル

「アプリケーション - ナビゲータ」の内容を表示。
「図60-10 JSR 286 Javaポートレット用に生成されるファイル」の説明

60.2.3 JDeveloperのウィザードを使用してJSR 286 Javaポートレットを作成した後の処理

次の手順では、ポートレットに必要な機能を実装する独自のビジネス・ロジックでサンプル・コードを拡張します。詳細は、次の場所にあるJSR 286の仕様を参照してください。

http://jcp.org/en/jsr/detail?id=286

portlet.xmlファイルを編集することで、ポートレットの設定を変更できます。JDeveloperでは、概要エディタが提供されており、簡単にportlet.xmlを編集できます。詳細は、第61.2.1項「ポートレット・デプロイメント・ディスクリプタ・ファイルの編集方法」を参照してください。

60.2.4 PDK-Javaポートレットの作成方法

JDeveloperのOracle PDK-Javaポートレットの作成ウィザードを使用すると、PDK-Javaポートレットを迅速かつ容易に作成できます。最初に、各モードで使用するために実装するポートレットのモード、および実装メソッド(JSP、HTTPサーブレット、JavaクラスまたはHTML)を選択できます。次に、ウィザードによって、選択したモードごとに簡単な実装が作成されます。

JDeveloperのウィザードを使用してPDK-Javaポートレットを作成する手順は次のとおりです。

  1. JDeveloperアプリケーション・ナビゲータで、ポートレットの作成先であるアプリケーションを開きます。

    アプリケーションはポートレットの作成用にスコープ設定されている必要があります。これを簡単に実現するには、ポートレット・プロデューサ・アプリケーション・テンプレートを使用します。WebCenter PortalのFrameworkアプリケーション・テンプレートを使用して構築されたアプリケーションは、ポートレット作成用にスコープ設定されていません。

  2. ポートレットの作成先であるプロジェクトを右クリックし、「新規」を選択します。


    注意:

    既存のプロデューサにポートレットを作成するには、プロデューサのprovider.xmlファイルを右クリックし、「ポートレットの追加」を選択します。これにより、Oracle PDK-Javaポートレットの作成ウィザードの「一般ポートレット情報」ページ(手順8)を直接開くことができます。


  3. 「新規ギャラリ」で、「Web層」を開き、「ポートレット」を選択して、「Oracle PDK-Javaポートレット」を選択し、「OK」をクリックします。


    注意:

    「Oracle PDK-Javaポートレット」を選択すると、PDK-Javaポートレットを作成するためのウィザードが開きます。「規格に基づいたJavaポートレット(JSR 286)」を選択すると、JSR 286準拠のポートレットを作成するためのウィザードが開きます。


  4. Oracle PDK-Javaポートレットの作成ウィザードの「プロバイダの詳細」ページ(図60-11)で、ポートレットを格納する新しいプロデューサの名前を入力します。この名前は、プロジェクト内で一意である必要があります。

    PDK-Javaでは、プロデューサではなくプロバイダという用語が使用されます。プロバイダはプロデューサと同じものです。

    図60-11 「プロバイダの詳細」ページ

    「プロバイダの説明」ページを表示。
    「図60-11 「プロバイダの詳細」ページ」の説明

  5. 「デプロイメント・プロパティ・ファイルの生成」を選択します。

    これにより、次の2つの.propertiesファイルが生成されます。

    • serviceID.propertiesは、そのサービスIDを持つプロデューサのプロパティを定義します。サービスIDは、プロデューサ名と同じ値です。

    • _default.propertiesは、デフォルトのプロパティ・ファイルです。プロデューサ・アプリケーションは複数のプロデューサを持つ場合があり、それぞれに独自のサービスIDがあります。登録時に、サービスIDが定義されていない場合は、デフォルトのプロパティ・ファイルが使用されます。

  6. 「XMLエントリの生成」を選択します。

    これにより、プロデューサに対してプロデューサ定義ファイル(provider.xml)が自動的に生成され、そのプロデューサに属するポートレット(ウィザードによって生成されたポートレットも含む)の詳細が含まれます。

  7. 「索引JSPの生成」を選択してから「次へ」をクリックします。

    これにより自動的にindex.jspファイルが作成されます。このファイルには、アプリケーションに存在するすべてのプロデューサがハイパー・リンクとともに記載されており、簡単にプロデューサ・テスト・ページにアクセスできるようになっています。

  8. 「一般ポートレット情報」ページ(図60-12)で、ポートレット名および、ポートレットの表示名を入力します。

    この名前は内部的に使用され、ユーザーには見えません。表示名は、「コンポーネント・パレット」などのポートレット選択リストでユーザーに対して表示されます。

    Frameworkアプリケーションには説明は実装されないので、このフィールドにはポートレットが他のアプリケーション(Oracle Portalなど)で使用される見込みがないかぎり、値を入力する必要はありません。

    図60-12 「一般ポートレット情報」ページ

    「ポートレットの説明」ページを表示。
    「図60-12 「一般ポートレット情報」ページ」の説明

  9. 「タイムアウト間隔(秒)」フィールドに、ポートレットのレンダリングに与えられる秒数を入力します。

  10. 「タイムアウト・メッセージ」フィールドに、ポートレットのレンダリングが指定したタイムアウト間隔を超えてしまった場合に表示されるメッセージを入力し、「次へ」をクリックします。

  11. 「ビュー・モード」ページ(図60-13)で、「ページの表示」の中の「実装スタイル」ドロップダウン・リストから、ポートレットの共有画面モードで使用される実装スタイルを選択します。

    • JSP: ポートレットの共有画面モードをJavaServer Pageとして実装する場合に選択します。「ファイル名」フィールドに、ウィザードによって生成されるファイルの名前を入力します。

    • HTTPサーブレット: ポートレットの共有画面モードをHTTPサーブレットとして実装する場合に選択します。「パッケージ名」フィールドに、HTTPサーブレットを格納するパッケージの名前を入力します。「クラス名」フィールドに、ポートレットの共有画面モードとともに参照されるJavaクラスを入力します。

    • HTMLファイル: ポートレットの共有画面モードをHTMLファイルとして実装する場合に選択します。「ファイル名」フィールドに、ウィザードによって生成されるファイルの名前を入力します。「HTMLファイル」を選択した場合、provider.xmlファイルの<renderer>エレメントの中に、次のコードが追加されることに注意してください。

      <showPage class="oracle.portal.provider.v2.render.http.ResourceRenderer">
          <resourcePath>provider_id/portlet_name/file.html</resourcePath>
          <contentType>content_type</contentType>
          <charSet>char_set</charSet>
       </showPage>
      

      charSetは、HTMLページのエンコードにプロデューサが使用する必要があるキャラクタ・セットを示しています。デフォルトのキャラクタ・セットは、JDeveloperの「プリファレンス」で指定します。異なるキャラクタ・セットが必要な場合は、それに応じてprovider.xmlのこの要素を更新する必要があります。

    • Javaクラス: ポートレットの共有画面モードをJavaクラスとして実装する場合に選択します。「パッケージ名」フィールドに、Javaクラスを格納するパッケージの名前を入力します。「クラス名」フィールドに、Javaクラスの名前を入力します。

    共有画面モードの詳細は、第58.1.3.1項「表示モード」を参照してください。

    図60-13 「ビュー・モード」ページ

    「表示モード」ページを表示。
    「図60-13 「ビュー・モード」ページ」の説明

  12. ポートレットに全画面モードを実装するには、「詳細ページの表示」を選択してから、手順11の全画面モードの説明に従って実装スタイルを選択します。

  13. ウィザードのこの時点で「終了」をクリックし、残りのすべての設定にデフォルト値を使用することで、ポートレットをただちに作成できます。

    さらにポートレットの詳細を指定するには、「次へ」をクリックし、残りの手順に従います。

  14. 「カスタマイズ・モード」ページ(図60-14)では、「ページの編集」がデフォルトで選択されています。ポートレットに編集モードを実装するには、手順11の共有画面モードの説明に従って実装スタイルを選択します。編集モードを実装しない場合は、「ページの編集」の選択を解除します。

    編集モードの詳細は、第58.1.3.2項「編集モード」を参照してください。

    図60-14 「カスタマイズ・モード」ページ

    「カスタマイズ・モード」ページを表示。
    「図60-14 「カスタマイズ・モード」ページ」の説明

  15. ポートレットにデフォルト編集モードを実装するには、「デフォルト・ページの編集」を選択してから、手順11の共有画面モードの説明に従って実装スタイルを選択します。

    デフォルト編集モードの詳細は、第58.1.3.3項「デフォルト編集モード」を参照してください。

  16. 「次へ」をクリックします。

  17. 「追加モード」ページ(図60-15)で、ポートレットにヘルプ・モードを実装するには、「ヘルプ・ページ」を選択してから手順11の共有画面モードの説明に従って実装スタイルを選択します。

    ヘルプ・モードの詳細は、第58.1.3.4項「ヘルプ・モード」を参照してください。

    図60-15 「追加モード」ページ

    「追加モード」ページを表示。
    「図60-15 「追加モード」ページ」の説明

  18. ポートレットに情報モードを実装するには、「ページ情報」を選択してから、手順11の共有画面モードの説明に従って実装スタイルを選択します。

    情報モードの詳細は、第58.1.3.5項「情報モード」を参照してください。

  19. 「次へ」をクリックします。

  20. 「パブリック・ポートレット・パラメータ」ページ(図60-16)で、「追加」をクリックしてポートレットにパブリック・パラメータを追加します。

    これにより、パラメータの表に新しい行が追加されます。行の各フィールドをダブルクリックして、パラメータに名前、表示名および説明を指定します。

    この手順を繰り返し、さらにパブリック・パラメータを追加します。終了したら、「次へ」をクリックします。

    パブリック・ポートレット・パラメータを使用すると、ポートレットと、ポートレットが存在するページ間およびそのページに存在する他のポートレット間の通信が可能になります。詳細は、第61.3.3項「パブリック・パラメータの実装方法」を参照してください。

    図60-16 「パブリック・ポートレット・パラメータ」ページ

    「パブリック・ポートレット・パラメータ」ページを表示。
    「図60-16 「パブリック・ポートレット・パラメータ」ページ」の説明

  21. Oracle PDK-Javaのイベントは、Frameworkアプリケーションではサポートされていないため、「パブリック・ポートレット・イベント」ページでは、「終了」をクリックします。

    イベントの詳細は、Oracle Fusion Middleware Oracle Portal開発者ガイドを参照してください。

60.2.5 PDK-Javaポートレットの作成時に行われる処理

JDeveloperのウィザードを使用してPDK-Javaポートレットを作成した場合、JDeveloperによりポートレットのデフォルトの実装が生成されます。特に、次のファイルが作成されます。

  • 選択した各ポートレット・モード用のファイル: portletnameEditPage.jspなどです。

  • provider.xml: プロデューサに属するポートレットの詳細を格納する、プロデューサ定義ファイルです。

  • web.xml: アプリケーションのWebデプロイメント・ファイルです。

  • weblogic.xml: PDK-Java共有ライブラリを指す共有ライブラリ定義が含まれます。

  • index.jsp: JDeveloperでテスト用に使用されます。

  • _default.properties: デフォルトのプロパティ・ファイルです。

  • serviceID.properties: serviceIDで識別されるプロデューサ用のプロパティ・ファイルです。

ポートレットを正常にデプロイして実行するためには、index.jspを除く、これらすべてのファイルが必要です。

図60-17に示すとおり、アプリケーション・ナビゲータでこれらすべてのファイルを見ることができます。

図60-17 PDK-Javaポートレット用に生成されるファイル

アプリケーション・ナビゲータの内容を表示。
「図60-17 PDK-Javaポートレット用に生成されるファイル」の説明

60.2.6 JDeveloperのウィザードを使用したOracle PDK-Javaポートレット作成後の処理

次の手順では、ポートレットに必要な機能を実装する独自のビジネス・ロジックでサンプル・コードを拡張します。

PDK-Javaの詳細は、Oracle Fusion Middleware Oracle PDK Java Java APIリファレンスを参照してください。

60.3 Javaポートレットのトラブルシューティング

この項では、ポートレットの作成ウィザードを使用したポートレットの作成中に、発生する可能性のある問題のトラブルシューティングに役立つ情報を提供します。

60.3.1 ポートレットの作成ウィザードにアクセスできない

問題

「新規ギャラリ」で、「Oracle PDK-Javaポートレット」または「規格に基づいたJavaポートレット(JSR 286)」オプションが見つかりません。

原因

JSR 286ポートレットやPDK-Javaポートレットの作成先のアプリケーションは、WebCenter PortalのFrameworkアプリケーション・テンプレートを使用して作成されたものです。そのため、ポートレット作成用にスコープ設定されていません。

解決方法

  1. ポートレット・プロデューサまたはポートレット作成用にスコープ設定されたアプリケーション(WebCenter PortalのFrameworkアプリケーション・テンプレートを使用して構築されたもの以外の、すべてのアプリケーション)でポートレットの作成を試します。

  2. 「新規ギャラリ」で、「すべてのテクノロジ」タブをクリックし、アプリケーションのテクノロジ・スコープに関係なく、使用可能なすべてのオプションをリストします。

60.3.2 ポートレットに必要なポートレット機能が追加できない

問題

ポートレットの作成ウィザードで、特定の機能(たとえば、ポートレット・イベントやパブリック・レンダラ・パラメータ)をポートレットに追加するオプションが見つかりません。

原因

ポートレットの作成ウィザードでは、特定の機能をポートレットに追加するオプションは提供されていません。

解決方法

ポートレットの作成ウィザードでポートレットを作成後、概要エディタを使用してportlet.xmlファイルを編集し、拡張機能を追加します。詳細は、第61.2項「JSR 286 Javaポートレットの拡張」を参照してください。