| Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド 11g リリース1 (11.1.1.7.0) B72084-02 |
|
![]() 前 |
![]() 次 |
この章では、Oracle WebCenter Portalのサービスを利用するようにアプリケーションを準備する方法について説明します。
この章には次の項が含まれます:
Oracle WebCenter Portalサービスは、ソーシャル・コンピューティング・サービス、個人の生産性サービス、オンラインでの認識およびコミュニケーション、コンテンツ統合、Web分析などのエンタープライズ2.0機能で、既存のポータルおよびWebサイトを充実したものにします。
|
関連項目:
|
この項では、サービスで使用できる主要なテクノロジについて概説します。これは、実装するサービスの決定や、ユーザー・インタフェースのカスタマイズに最適な方法を決定する際に役立ちます。
この項には次のサブセクションが含まれます:
WebCenter Portalのサービスには、同格のサービスとみなされるものがあります。これらのサービスは、1つのアプリケーション全体で他のサービスと相互作用します。
表7-1は、Oracle WebCenter Portal: Frameworkのサービス統合のリストです。
表7-1 WebCenter Portalのサービス統合
| WebCenter Portalサービス | RSS | 検索 | タグ | リンク | コメントとお気に入り登録 | アクティビティ・ストリーム | アクティビティ・グラフ | 通知 | 分析 |
|---|---|---|---|---|---|---|---|---|---|
|
アクティビティ・グラフ |
X |
n/a |
X |
||||||
|
お知らせ |
X |
X |
X |
X |
X |
||||
|
ブログ |
X |
X |
X |
X |
X |
X |
X |
X |
|
|
ディスカッション |
X |
X |
X |
X |
X(トピックへの返信) |
X |
X(返信) |
X |
|
|
ドキュメント(Wikiを含む) |
X |
X |
X |
X |
X |
X |
X |
X |
|
|
イベント |
X(一部) |
X |
X |
X |
|||||
|
インスタント・メッセージおよびプレゼンス(IMP) |
X |
||||||||
|
リスト |
X |
X |
X |
X |
X |
X |
|||
|
メール |
X |
||||||||
|
ノート |
X |
X |
|||||||
|
ピープル・コネクション |
X(一部) |
X(一部) |
X(アクティビティ・ストリーム、メッセージ・ボード) |
X(メッセージ・ボード、プロファイル、フィードバック) |
X(メッセージ・ボード) |
X |
X |
||
|
投票 |
|||||||||
|
最近のアクティビティ |
X |
||||||||
|
検索 |
n/a |
X |
X(一部) |
X |
|||||
|
タグ |
X |
n/a |
X |
|
注意: スペースのイベントとお気に入りは、WebCenter Portal: Spacesアプリケーションでのみ使用できます。 この表に示した検索サービスは、WebCenter Portal検索アダプタを使用して、利用可能な各サービスを検索します。ただし、大規模な実装で最高のパフォーマンスを得るには、Oracle SES検索を使用するように構成する必要があります。Oracle SESは、次のリソースについてアプリケーションを検索します。
詳細は、第44章「検索サービスの統合」を参照してください。 |
この項では、WebCenter Portalサービスで使用できるAPIについて説明します。
複数のカスタマイズ・オプションが選択できる場合は、次の考慮事項に注意してください。
WebCenter Portal: Spacesにアクセスするカスタム・クライアント(Spacesと相互作用するiPhoneアプリケーションなど)を作成する場合は、REST APIを使用してください。
REST APIでは、ユーザー・インタフェースのカスタマイズや、カスタム・コンポーネントの開発を最も短時間で簡単に行うことができます。Spacesにアクセスするカスタム・ユーザー・インタフェースを作成する場合は、データ・コントロールまたはネイティブのAPIを使用することを検討してください。
カスタム・ポータルまたは複合Frameworkアプリケーションを作成する場合は、データ・コントロールまたはネイティブのAPIを使用してください。
Java、JDeveloper、およびADFについて習熟している場合は、データ・コントロールまたはネイティブのAPIを使用してください。その他の言語(特にJavaScript)を使用する場合は、REST APIを使用してください。
表7-2は、サービスと利用可能なAPIのリストです。サード・パーティのバックエンドを使用するサービス用に、利用可能なバックエンドのAPIも含まれています。
表7-2 サービスのサポート対象テクノロジ
| WebCenter Portalサービス | データ・コントロール | Java API | REST API | バックエンドAPI |
|---|---|---|---|---|
|
アクティビティ・グラフ |
|
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
第45.3.2項「アクティビティ・グラフ・サービスREST APIの使用」 |
|
|
分析 |
|
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
||
|
お知らせ |
Oracle WebCenter Portalのディスカッション・サーバーを使用するWebサービス(WebCenter Portalはカスタム認証で設定されるため、構成が必要です) Oracle Fusion Middlewareドキュメント・ライブラリのJiveフォーラムのドキュメントを参照してください(WebCenter Portal製品の部分にあります)。 |
|||
|
コメントとお気に入り登録 |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
|
||
|
ディスカッション |
第33.3.8項「ディスカッション・サービスREST APIの使用」 |
Oracle WebCenter Portalのディスカッション・サーバーを使用するWebサービス(WebCenter Portalはカスタム認証で設定されるため、構成が必要です) Oracle Fusion Middlewareドキュメント・ライブラリのJiveフォーラムのドキュメントを参照してください(WebCenter Portal製品の部分にあります)。 |
||
|
ドキュメント(Wikiとブログを含む) |
|
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
Oracle Fusion Middleware Content Management REST Service開発者ガイド |
Oracle Fusion Middleware Remote Intradoc Client (RIDC) Java APIリファレンスを参照してください。 Oracle Fusion Middleware Oracle Universal Content Managementサービス・リファレンス・ガイド |
|
イベント |
|
Microsoft ExchangeによるWebサービス |
||
|
一般設定 |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
|||
|
リンク |
|
|||
|
リスト |
|
|||
|
通知 |
|
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
||
|
ページレット・プロデューサ |
第65.2.2.2項「RESTを使用したページレットへのアクセス」 |
|||
|
ピープル・コネクション |
第40.1項「ピープル・コネクション・データ・コントロールの使用方法」 |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
第41章「ピープル・コネクション・サービスREST API」(プロファイルおよびアクティブ・ストリームについて) |
|
|
パーソナライズ |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス(カスタムのプロバイダおよびロケータの開発について) |
|||
|
投票 |
第36.3.4項「投票サービス・データ・コントロールの使用方法」 |
|||
|
リソース・アクション・ハンドラ・フレームワーク |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
|||
|
検索 |
第44.3.8項「検索サービス・データ・コントロールの使用」 注意: 検索データ・コントロールは、Oracle SES検索でのみサポートされます。 |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
注意: 検索REST APIは、Oracle SES検索でのみサポートされます。 |
Oracle Secure Enterprise SearchによるWebサービスおよびJava API |
|
タグ |
Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
|
|
関連項目: 式言語APIについては、Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンスを参照してください |
一部のサービスでは、カスタマイズされたユーザー・インタフェースをFrameworkアプリケーションまたはタスク・フローで構築するためのデータ・コントロールが用意されています。このタスク・フローをADFライブラリにデプロイすると、タスク・フローのポータブル消費が可能になります。たとえば、Spacesアプリケーションのリソース・カタログ(コンポーザ)にタスク・フローを追加してサイト・テンプレートを構築できます。
事前にサービスを統合する必要なしに、サービスのデータ・コントロールをユーザー・インタフェースの編集に使用できます。アプリケーションは、それぞれのサービスに含まれるいずれかのデータ・コントロールまたはタスク・フローが使用されたときに、そのサービスに応じて構成されます。
|
注意: Oracle ADFアーキテクチャには、ユーザー・インタフェースでデータの構造を認識できるデータ・コントロールが用意されています。メタデータにより、データのコレクション、プロパティ、メソッドおよびタイプが表されます。属性、コレクションおよびメソッドをドラッグしてページにドロップすると、JDeveloperは自動的にページから関連サービスへのバインディングを作成します。 データ・コントロールの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。 |
組込みデータ・コントロールを使用するには:
JDeveloperで、サービスに必要な接続を使用してWebCenter Portal Frameworkアプリケーションを作成します。
「リソース・パレット」で「カタログ」、「WebCenter Portal - サービス・カタログ」、「データ・コントロール」の順に開きます。
データ・コントロールを右クリックして、「プロジェクトに追加」を選択します。
データ・コントロールからメソッドとプロパティをドラッグして、ADF JSFページにドロップします。
|
注意: データ・コントロールをアプリケーションに追加する方法は、他にも2つあります。
|
この項では、WebCenter PortalのWebサービスを使用するようにアプリケーションを準備する場合に、実行する必要のある手順について説明します。次のサブセクションが含まれます:
どのアプリケーションでも、サービスを組み込むように構成できます。JDeveloperでアプリケーションを作成するときには、アプリケーションのベースにするテンプレートを選択できます。必須ではありませんが、WebCenter PortalのFrameworkアプリケーション・テンプレートを使用すると、該当するすべての接続ウィザードとタグ・ライブラリが、「新規ギャラリ」と「コンポーネント・パレット」にすぐに表示され、使用できるようになります。サービス・タスク・フローまたはコンポーネントを利用すると、必要なライブラリが自動的にプロジェクトに追加されます。
アプリケーションは、利用するサービスに応じた特定の前提条件を満たす必要があります。たとえば、サービスでユーザーのアイデンティティを認識する必要がある場合、アプリケーションでユーザー認証に一定レベルのセキュリティを提供する必要があります。
この項には次のサブセクションが含まれます:
一部のサービスでは、ユーザーのアイデンティティを認識する必要があります(たとえば、検索サービスでは、検索の保存のためにユーザーのアイデンティティが必要になります)。これらのサービスでは、少なくともユーザーを認証するようにアプリケーションを構成して、ユーザーのカスタマイズとプリファレンス用に、ユーザーが個別のアイデンティティを持つようにする必要があります。
WebCenter PortalのFrameworkアプリケーション・テンプレートを使用してアプリケーションを作成すると、デフォルトでADFセキュリティが構成されます。
|
関連項目:
|
ADFセキュリティをアプリケーション用に構成すると、jazn-data.xmlファイルを開いて、サンプル・ユーザーの権限を各タスク・フロー用に変更できます。ADFセキュリティ・ポリシー・エディタを開くには、「アプリケーション・リソース」パネルでファイルを見つけてその名前をダブルクリックするか、「アプリケーション」→「セキュア」→「リソース権限」を選択します(図7-2)。「リソース・タイプ」ドロップダウンは、表に示される権限のセットを制御します。リストから特定の権限タイプを選択することで、そのタイプの権限のみが表示されます。
JDeveloperでサービスの接続を設定しているときに、その接続をSSLで保護されたエンドポイントにする(信頼できる認証局の有効な証明書を使用する)場合は、それに応じて環境を準備する必要があります。
|
注意: このプリファレンス設定の変更は、デフォルト・サーバーとして統合WLSを使用して作成した接続にのみ必要になります。管理対象サーバーにデプロイする場合、この設定の変更は必要ありません。 |
SSLで保護されたサービス接続用にプリファレンスを設定するには:
多くのサービスは、関連情報が格納されているデータベース・スキーマへの接続が必要になります。たとえば、リンク・サービスの場合は、リレーションシップのマッピング情報(どのオブジェクトが、どのオブジェクトにリンクされているかなど)がデータベースに格納されています。
表7-3は、データベース接続が必要になるサービスのリストです。
表7-3 関連するデータ・ソース
| サービス | データ・ソース |
|---|---|
|
アクティビティ・グラフ |
アクティビティ |
|
アクティビティ・ストリーム |
WebCenter Portal |
|
分析 |
アクティビティ |
|
ブログ |
WebCenter Portal |
|
コメント |
WebCenter Portal |
|
コメントおよびアクティビティ・ストリームを組み込むドキュメント(Wikiとブログを含む) |
WebCenter Portal |
|
リンク |
WebCenter Portal |
|
リスト |
WebCenter Portal |
|
Oracle Portalアダプタ |
PORTAL (Oracle Portalスキーマの名前) |
|
ピープル・コネクション |
WebCenter Portal |
|
投票 |
WebCenter Portal |
|
タグ |
WebCenter Portal |
|
関連項目:
|
データベース接続を作成するには:
アプリケーション・ナビゲータで、「アプリケーション・リソース」パネルを開きます。
「接続」を右クリックし、「データベース」をクリックします。
データベース接続に関する次の情報を入力します。
接続名: webcenter/CustomPortalまたはactivities/CustomPortal
|
注意: Framework管理対象サーバーへのデプロイメントが簡単になるように、次の名前の使用をお薦めします。
|
接続タイプ: Oracle (JDBC)
ユーザー名: username
パスワード: password
ホスト: WebCenter Portalスキーマをインストールするホスト(例: localhost)
JDBCポート: ポート(例: 1521)
SID: 同じJDBCを使用するデータベースのシステム識別子(例: ORCL)
|
注意: 「パスワードの保存」チェック・ボックスが選択されていないときに、JDeveloperから管理対象サーバーまたは統合WebLogic Serverにデプロイする場合は、デプロイメント後に手動でデータ・ソースを作成する必要があります。 Oracle WebLogic ServerのJDBCデータ・ソースを作成する方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。 |
「OK」をクリックします。
「データソースへの関連付け」ダイアログで、適切なスキーマを選択します。
接続の名前をwebcenter/CustomPortalにしている場合は、この接続をWebCenter Portalスキーマに関連付けるように選択します。
接続の名前をactivities/CustomPortalにしている場合は、この接続をアクティビティ・スキーマに関連付けるように選択します。
「OK」をクリックします(図7-6)。
データ・ソースの関連付けは、ワークスペース内の各プロジェクトに個別に適用されます。ワークスペース内に複数のWebCenter Portalプロジェクトが存在する場合、ダイアログにドロップダウン・リストが表示され、ユーザーは構成するプロジェクトを選択できます。
|
注意: Oracle JDeveloperで設計時にバックエンド・サーバーへの接続を設定できますが、デプロイ後の環境でEnterprise Manager Fusion Middleware Controlを使用して、後から接続を追加、削除または変更できます。 詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』を参照してください。 |
独自の認証を処理するアプリケーションとサービスが相互作用するときには、そのアプリケーションと外部アプリケーション定義を関連付けて、資格証明プロビジョニングに備えることができます。
次のサービスは、サービスへの接続と認証の定義に外部アプリケーションを使用できます。
ドキュメント
イベント
インスタント・メッセージおよびプレゼンス
メール
RSSビューア(セキュリティ保護されたRSSフィードを使用する場合)
|
関連項目:
|
この項では、リソース・アクション処理フレームワークの概要と、リソース・ビューアの登録方法について説明します。次のサブセクションが含まれます:
カスタム・コンポーネントは、即時利用可能なサービスと同様にリソースを管理して所有します。そのため、これらのコンポーネントはそのリソースが他のサービス(検索、タグ、リンク、最近のアクティビティなどのサービス)を起動するサービスにアクセスできるようにするための宣言が必要になります。WebCenter Portalは、表示、検索、およびタグ付けの対象になるリソースを公開するカスタム・コンポーネントとサービスのために、リソース・アクション処理フレームワークを提供しています。
たとえば、リソース・アクション処理フレームワークを使用すると、検索サービスが、指定のサービスのリソースをレンダリングするメカニズムを検索し、これに従うようになります。リソース・アクション処理フレームワークのもう1つの機能は、リソースの認証の宣言とアクセス時の認証の実施を可能にすることです。
次のリソースは、リソース・アクション処理フレームワークを使用して、リソース・ビューアを起動します。
検索
タグ
リンク
Wikiとブログ
最近のアクティビティ
ピープル・コネクション
アクティビティ・ストリーム(それ自体の起動)
接続(それ自体の起動)
フィードバック(それ自体の起動)
プロファイル(タグ、タグ付けしたアイテム、およびそれ自体の起動)
メッセージ・ボード(それ自体の起動)
WebCenter Portalを指す外部リンク(メール、通知、ドキュメント、RSSフィード、REST XMLなどから)
次のリソースは、リソース・アクション処理フレームワークで起動可能なタスク・フローを所有します。
お知らせ
ディスカッション
ドキュメント(Wikiやブログを含む)
イベント
リスト
メール
ノート
ページ
ピープル・コネクション
アクティビティ・ストリーム - メイン・ビュー
コネクション
フィードバック
プロファイル
プロファイル・ギャラリ
メッセージ・ボード
Spaces (/webcenter/spaces/Space1NameにマップするURLリライタ)
タグ - タグ・センター
|
関連項目: リソース・アクション処理およびリライタ・インタフェースについては、Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンスを参照してください。 |
検索やタグを使用してカスタム・リソースをレンダリングできるようにする場合や、そのリソースを相互にリンクできるようにする場合には、リソース・ビューアを登録する必要があります。
service-definition.xmlファイルで、リソース・ビューアを定義すると、任意のサービスでそのサービスのリソースをレンダリングできるようになります。このビューアは、リソースIDに作用するタスク・フローまたはURLリライタになります。
たとえば、検索サービスを通じてディスカッション・フォーラムのメッセージが見つかったとします。結果のリンクをクリックすると、ディスカッション・サービスに宣言されたリソース・ビューアが(ディスカッション・サービスのservice-definition.xmlを検索することで)起動されます。デフォルトでは、ターゲットはダイアログ内でレンダリングされます。
リソース・ミニ・ビューを宣言すると、このサービスに表示されるインライン・ポップアップに使用されるリソース・ビューアを指定できます。ミニ・ビューが指定されていない場合は、インライン・ポップアップにリソース・ビューが使用されます。
|
注意: サンプルの |
カスタム・リソース・ビューアを登録するには:
アプリケーション・ナビゲータで、プロジェクトの「ページ・フロー」ノードを右クリックして、ポップアップ・メニューから「新規」を選択します。
「カテゴリ」で、「JSF」→「ADFタスク・フロー」を選択して、「OK」をクリックします。
「タスク・フローの作成」ダイアログで、「ファイル名」をorder-viewer.xmlなどに変更します。タスク・フローIDが自動的にorder-viewerに更新されます(図7-8)。
「OK」をクリックします。
order-viewer.xmlファイルが..\public_html\WEB-INF内に作成されていることを確認します。
コンポーネント・パレットで「ADFタスク・フロー」が選択されていることを確認し、「表示」をタスク・フローにドラッグしてページ・フラグメントを作成します。
ページ・フラグメントの名前をorder-viewerに変更し、キャンバスの空いている領域をクリックして変更を受け入れます。
ページ・フラグメントにJSFFファイルを定義します。
ページ・フラグメントをダブルクリックします。
「新規JSFページ・フラグメントの作成」ダイアログで、「OK」をクリックします。
エディタの「ソース」ビューに移り、jsp:root要素内にaf:outputTextタグを貼り付けます。
例7-1では、非常にシンプルなリソース・ビューアが提供されます。より複雑なビューアを作成することもできます。
タスク・フローにresourceId入力パラメータを追加して、その値を#{pageFlowScope.resourceId}に設定します。
タスク・フローの定義後、service-definition.xmlファイル内に、このタスク・フローを登録する必要があります。アプリケーション・ナビゲータで「アプリケーション・リソース」、「ディスクリプタ」、「ADF META-INF」と開きます。
「service-definition.xml」をダブルクリックし、エディタで開きます。
このファイルで、コメント・アウトされたサービス定義を見つけます。この周りの<!-- and -->タグを削除し、コメント解除します。
id属性をサービス識別子に設定します。
たとえば、「タグ付け」ボタンを定義するときには、サービス識別子にmycompany.myproduct.myapp.mycomponentを使用します。
<resource-view>要素内のtaskFlowIdを/WEB-INF/order-viewer.xml#resource-viewerに設定します。
この識別子は、タスク・フローのパスとファイル名を「タスク・フローの作成」ダイアログで宣言したタスク・フローIDと連結したものです。その他のタグは、省略してもかまいません。
<resource-view>宣言には、リソース認可プロバイダのクラス指定があります。これにより、リソース・ビューを指定して、どのタグ付きオブジェクトをユーザーに表示(および、検索可能に)するかを決定するための様々な方法が提供されます。
例7-2 resource-view宣言内のタスク・フローIDの指定
<resource-view taskFlowId="/somepath/somefile.xml#someId"
authorizerClass="some.service.id.Authorizer1"/>
検索サービス、タグ・サービスおよびディスカッション・サービスは、このタイプの宣言を使用します。表示ID (JSPXページ)を保持するのではなく、サービスはリソースをレンダリングするタスク・フローを提供します。
属性taskFlowIdは、レンダラがタスク・フローであることを意味します。
タスク・フローは、リソースIDで指定されたリソースのレンダリングに使用されます。
このタスク・フローは、resourceId入力パラメータを受け入れて、リソースのレンダリングに使用します。
例7-3 URLリライタ・クラス名の指定(1)
<resource-view urlRewriterClass="oracle.webcenter.framework.resource.IdentityResourceUrlRewriter"
authorizerClass="some.service.id.Authorizer5"/>
または
例7-4 URLリライタ・クラス名の指定(2)
<resource-view urlRewriterClass="oracle.webcenter.framework.resource.MessageFormatResourceUrlRewriter"
authorizerClass="some.service.id.Authorizer4">
<parameters>
<!-- This starts from the context root which would be /webcenter -->
<parameter name="message" value="/content/conn/UCM/path/{0}"/>
</parameters>
</resource-view>
または
例7-5 URLリライタ・クラス名の指定(3)
<resource-view urlRewriterClass="oracle.webcenter.framework.resource.MyResourceUrlRewriter"
authorizerClass="some.service.id.Authorizer6">
<parameters>
<parameter name="myParam" value="myValue"/>
</parameters>
</resource-view>
一部のサービスは、URLリライタを使用してリソースIDをURLとして扱い、適切な形式にURLを書き換えます。URLリライタは、リソースIDをgoLinkで起動できるURLに変換します。次の2つのResourceUrlRewritersが提供されます。
oracle.webcenter.framework.resource.IdentityResourceUrlRewriterは、Oracle SESを使用する検索用です。これは、resourceId値をURLとしてそのまま受け入れます。
oracle.webcenter.framework.resource.MessageFormatResourceUrlRewriterは、ドキュメント用です。これは、(service-definition内の) messageパラメータを受け入れます。messageパラメータには、resourceIdの値に置き換えられる{0}が含まれています。
urlExternalパラメータは、すべてのURLリライタに適用されます。このパラメータの値により、リソース・アクション・ハンドラのリンクを利用するJSPXで新しいウィンドウを開くかどうかが決まります。
ページやWikiなどのリソースは、リソース・ビューアを持つことができませんが、それらのリソースIDはページ表示IDとしてダビングできます(例7-6)。
サービスは、例7-7に示すようなものになります。
例7-7 リソース・ビューのサンプル・サービス定義
<service-definitions>
<service-definition id="mycompany.myproduct.myapp.mycomponent"
version="11.1.1.0.0">
<resource-view taskFlowId="/somepath/somefile.xml#someId"
authorizerClass="mycompany.myproduct.myapp.mycomponent.ResourceAuthorizer"/>
<resource-type>Custom Object</resource-type>
<object-types>
<object-type name="customcomponent123"
displayName="Display Name"
description="Description"/>
</object-types>
<resource-bundle-class>mycompany.myproduct.myapp.mycomponent.resource.ComponentMessageBundle
</resource-bundle-class>
<name>My Custom Component</name>
<description>My Custom Component's Description</description>
<icon>/mycompany/myproduct/myapp/mycomponent/component.png</icon>
</service-definition>
...
</service-definitions>
service-definition.xmlファイルを保存します。
リソース認可プロバイダ・インタフェースは、Javaのインタフェースとクラスを使用して、サービスのリソースに関する有用な情報を返します。たとえば、oracle.webcenter.framework.resource.ResourceAuthorizerインタフェースには、一意のリソースIDについてのステータス(使用可能または使用不可)を返すメソッドが含まれています(例7-8)。
例7-8 一意のリソースIDに対するステータスを返すメソッド
/* * Check if the passed in resourceIds are viewable by the current user. * * @param resourceId - the resourceId to check * @return - a <code>ResourceInfo</code> with a ResourceStatus * of RESOURCE_IS_AVAILABLE if the passed in resourceId * is viewable by current user, otherwise returns * <code>RESOURCE_IS_NOT_AVAILABLE</code>. */ ResourceInfo getResourceInfo(String resourceId, Scope scope); /* * Check if the passed in resourceIds are viewable by the current user. * * @param resourceIds - the resourceIds to check * @return - a List of <code>ResourceInfo</code> with a ResourceStatus * of RESOURCE_IS_AVAILABLE if the passed in resourceId * is viewable by current user, otherwise returns * <code>RESOURCE_IS_NOT_AVAILABLE</code>. */ List<ResourceInfo> getResourceInfo(List<String> resourceIds, Scope scope);
oracle.webcenter.framework.resource.ResourceInfoインタフェースは、次のメソッドを公開しています。
public ResourceStatus getResourceStatus();
oracle.webcenter.framework.resource.ResourceInfo列挙型には、次の有効な値が含まれています。
例7-9 有効なResourceStatus値
/**
* Used to describe a related object's status.
*
* Certain operations may be performed by relationship service depending
* on what object status it receives from the service. For example,
* if it receives {@link #RESOURCE_DOES_NOT_EXIST} it may remove all
* relationships associated with this object from the relationship schema
* so future calls are not wasted on this object.
*/
public enum ResourceStatus
{
/**
* Used to describe a resource that is available.
*/
RESOURCE_IS_AVAILABLE,
/**
* Used to describe a resource that does not exist.
*/
RESOURCE_DOES_NOT_EXIST,
/**
* Used when the user does not have view access on the resource.
*/
USER_DOES_NOT_HAVE_ACCESS;
}
oracle.webcenter.framework.resource.ResourceUrlRewriterインタフェースのメソッドのみが、一意の識別子が渡された後でURLを書き出します。このURLは、絶対URLになることも、所有アプリケーションのFacesコンテキスト・ルートの相対URLになることもあります。
独自のリソース・アクション・ビュー・ハンドラ(たとえば、現在のページの新しいタブにリソースを表示する)を作成して、ADFインライン・ポップアップを使用するか、DefaultResourceActionHandler(同じブラウザ・ウィンドウで開いて、リソースの全画面ナビゲーションを表示する)を使用してナビゲートするか、PopUpResourceActionHandler(新しいブラウザ・ポップアップ・ウィンドウを開く)を使用するかを指定します。
FrameworkアプリケーションでRAH対応のリンクまたはボタンをクリックすると、組込みのデフォルト・リソース・アクション・ビュー・ハンドラが起動されます。これにより、同じブラウザ・ウィンドウを使用してブラウザからリソースにナビゲートすることで、リソース・ビューア・タスク・フローでリソースを開きます。
この動作は、adf-config.xmlの<resource-handler>要素に、組込みのポップアップ・ビュー・ハンドラまたはカスタム・ビュー・ハンドラを指定することで変更できます。さらに、デフォルト・アクションでビュー・ハンドラを起動するか、現在のウィンドウにADFインライン・ポップアップとして表示するかを指定できます。
例7-11に、adf-config.xmlに追加するXMLを示します。このXMLでは、ビュー・ハンドラとしてMyAppResourceActionHandlerを使用し、ADFインライン・ポップアップを使用して最初にリソースを表示するように宣言しています。
例7-11 カスタム・ビュー・ハンドラの指定
<wpsC:adf-service-config
xmlns="http://xmlns.oracle.com/webcenter/framework/service">
<resource-handler
class="com.mycompany.myapp.MyAppResourceActionHandler"
display-as-popup="true" />
</wpsC:adf-service-config>
このwpsC:ネームスペースは、次のように定義されています。
xmlns:wpsC="http://xmlns.oracle.com/webcenter/framework/service"
RAHフレームワークには、DefaultResourceActionHandlerとともに、PopUpResourceActionHandlerも含まれます。これは、完全なブラウザ・ウィンドウ・ナビゲーションを実行するのではなく、ナビゲート時に新しいブラウザ・ポップアップを起動します。これは、以前のリリースのWebCenter Portalアプリケーションの動作と似ています。
例7-12に、ポップアップ・ビュー・ハンドラの指定方法を示します。
例7-12 ポップアップ・ビュー・ハンドラの指定
<wpsC:adf-service-config
xmlns="http://xmlns.oracle.com/webcenter/framework/service">
<resource-handler
class="oracle.webcenter.framework.resource.view.PopUpResourceActionHandler" />
</wpsC:adf-service-config>
アプリケーションは、ResourceActionHandlerインタフェースを実装するクラスを作成するか、AbstractResourceActionHandlerベース・クラスを拡張して、adf-config.xmlの<resource-handler>のクラス属性に新しいビュー・ハンドラを指定することで、独自のリソース・アクション・ビュー・ハンドラを起動できます。次のシナリオでは、RAHリンクがクリックされたときに、カスタム・ビュー・ハンドラ・クラスを起動します。
ADFインライン・ポップアップが使用されていません。
「最大化」ボタンがADFインライン・ポップアップでクリックされました。
|
関連項目: カスタム・リソース・アクション・ビュー・ハンドラ(具体的には、 |
<resource-handler>タグ内のdisplay-as-popup属性では、RAHリンクのアクションの初期動作を定義します。これは、resourceActionBehaviorタグでuseResourcePopup属性にalways、neverまたはappDefinedの値を使用することで、RAHリンク自体で上書きできます。
useResourcePopupが設定されていない場合や、これがRAHリンクでappDefinedに設定されている場合は、adf-config.xmlのdisplay-as-popup属性が考慮されます。これがtrueに設定されている場合、RAHは、リソース・アクション・ビュー・ハンドラを起動するのではなく、ADFインライン・ポップアップを起動します。これにより、リソースのミニ・リソース・ビューが現在のページ内のADFインライン・ポップアップに表示されます。ユーザーは、これを閉じることも最大化することもできます。ユーザーが「最大化」ボタンをクリックすると、ポップアップが閉じてリソース・アクション・ビュー・ハンドラが起動されます。
デフォルトでは、完全なナビゲーションが意味をなさない一部のタスク・フローに対する特別な場合にのみ、FrameworkアプリケーションでADFインライン・ポップアップが使用されます。たとえば、検索結果には、リソースの作成者が含まれていることがあります。このユーザー名のリンクをクリックすると、検索結果から移動することなく、作成者の簡単なプロファイルを示すポップアップを確認できます。
これらのタスク・フローでは、resourceActionBehaviorタグで、useResourcePopupがalwaysに設定されています。これは、タスク・フローをカスタマイズすることで変更できます。
デプロイ済のアプリケーションの場合は、WLSTコマンドを使用することで、adf-config.xmlの<resource-handler設定を追加したり更新したりできます。コマンドの構文および例は、『Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス』のsetWebCenterServiceFrameworkConfigに関する項と、getWebCenterServiceFrameworkConfigに関する項を参照してください。
アプリケーションに追加したサービスのタイムゾーン、日時の書式、言語(ロケール)およびアクセシビリティ・モードは、必要に応じてユーザーが設定できるようにすることが可能です。このような機能は、WebCenter Portal一般設定サービスを通じて提供できます。このサービスが格納する値には、FrameworkアプリケーションのJSFページから直接アクセスすることも、APIを通じて間接的にアクセスすることもできます。一般設定サービスの対応範囲は、次のとおりです。
タイムゾーン: デフォルトでは、アプリケーションを実行するサーバーで定義されている時刻が表示されます。これは、java.util.Timezoneに基づきます(例: GMT+0800)。また、Region/Countryの書式もサポートします(例: Europe/Amsterdam)。
日付/時間: デフォルトでは、java.text.DateFormat.SHORTのスタイルに合わせて構成されます。これは、java.text.DateFormatに基づきます(例: java.text.DateFormat.MEDIUM)。サポートされる値は、SHORT、MEDIUM、LONGおよびFULLです。
言語: デフォルトでは、ユーザーのブラウザのロケールで定義されます。これは、java.util.Localeに基づきます(例: fr-CA)。
アクセシビリティ設定: trinidad-config.xmlファイルのaccessibility-mode設定に使用する値です。有効な値は、default、inaccessibleまたはscreenReaderです。
アプリケーション・スキン: trinidad-config.xmlファイルのskin-family設定に使用する値です。これは、Trinidad skin-family属性に基づきます。有効な値は、アプリケーションに含まれるスキンで定義されます。
アプリケーションからサービスを直接使用する場合は、JSFページで式言語を使用して、generalSettingsマネージドBeanにアクセスします。スタイルはjava.util.Timezoneに基づき、パターンはjava.text.SimpleDateFormatに基づきます。
ADFコンポーネント(たとえば、af:activeOutputText)のvalue属性としてgeneralSettingsを追加する場合は、「式ビルダー」を開いて、「JSFマネージドBean」、「generalSettings」の順にナビゲートすると、Beanのプリファレンス値を表示できます。
一般設定サービスは、パターンベースの書式とスタイルベースの書式をどちらもサポートします。パターンが指定されていない場合は、スタイルが使用されます。デフォルトでは、パターンは指定されていないか、NULLです。
図7-9に、一般的な設定の「EL式の挿入」ダイアログを示します。
表7-4では、一般設定サービスのプリファレンス値について説明します。
表7-4 一般設定マネージドBeanのプリファレンス値と説明
| 一般設定のプリファレンス値 | 説明 |
|---|---|
|
|
ユーザーが選択しているロケールで現在の日付を表示します。 |
|
|
ユーザーが選択しているロケールで現在の日付と時刻を表示します。 |
|
|
ユーザーが選択しているロケールで現在の時刻を表示します。 |
|
|
|
|
|
日付および時刻を表示するときに |
|
|
日付および時刻を表示するときに |
|
|
時刻ではなく日付の表示に使用されるJava日付パターン。パターンは有効な |
|
|
日付を表示しないで時刻を表示する場合に使用される、Javaの時刻パターンです。これは、 |
|
|
日付と時刻を表示するときに使用される、Javaの日付/時刻パターンです。 これは、 |
|
|
日付および時刻を表示するときに |
|
|
|
たとえば、ユーザーの選択しているロケール、タイムゾーン、および書式で、現在の日付と時刻を表示するには、次のコードをページに追加します。
例7-13 ユーザーのロケールで現在の日付と時刻を表示するコード
<af:outputText value="#{generalSettings.formattedCurrentDateTime}"/>
また、特定の日付と時刻を表示するには、次のようにします。
例7-14 特定の日付と時刻を表示するコード
<af:outputText value="#{row.dateTimeValue}">
<af:convertDateTime type="both"
dateStyle="#{generalSettings.preferredDateStyle}"
timeStyle="#{generalSettings.preferredTimeStyle}"
timeZone="#{generalSettings.userTimeZone}"
locale="#{facesContext.externalContext.requestLocale}" />
pattern="#{generalSettings.preferredDateTimePattern}"
</af:outputText>>
優先アクセシビリティ・モードを利用するには、アプリケーションのtrinidad-config.xmlファイルにEL(式言語)式を追加して、そのアクセシビリティ・モードを設定する必要があります。例:
例7-15 trinidad-config.xmlでのアクセシビリティ・モードの設定
<accessibility-mode>#{generalSettings.preferredAccessibilityMode}</accessibility-mode>
一般設定APIを使用してユーザー・インタフェースを作成すると、ユーザーはデフォルト設定を受け入れることも、自分の目的に適った設定を適用することもできるようになります。このAPIには、表7-4に示したものと同じプリファレンス値が含まれています。
日付と時刻を表示するWebCenter Portalのサービスは、一般設定サービスで構成された設定を使用します。一般設定サービスAPIを使用してプリファレンス・ユーザー・インタフェースを作成する方法は、oracle.webcenter.generalsettingsについてのJavadocを参照してください。具体的には、oracle.webcenter.generalsettings.modelパッケージに、各設定のプリファレンス値を取得および設定するAPIが含まれています。これらのAPIを使用してカスタム・ユーザー・インタフェースを作成すると、ユーザーは各自の優先値を表示および設定できるようになります。
|
関連項目: Oracle Fusion Middleware Oracle WebCenter Portal Java APIリファレンス |
デフォルトでは、ADFはユーザーのブラウザ設定からユーザーのロケールを取得します。この動作は、プリファレンスUIを使用して、ユーザーの優先ロケールをアプリケーションで設定できるように変更できます。
この動作を変更するには、oracle.webcenter.generalsettings.model.filter.GeneralSettingsLocaleFilterをサーブレット・フィルタとして、web.xmlとadfBindingsに含めます。このサーブレット・フィルタは、ユーザーのブラウザからではなく、一般設定サービスのロケール・プリファレンスを基にデフォルトのロケール(ADFロケール)を設定します。
次のルールに従って、一般設定のロケール・フィルタをweb.xmlに追加します。
フィルタを定義します。例:
<filter>
<description>
WebCenter General Settings locale setting.
</description>
<filter-name>
generalSettingsLocaleFilter
</filter-name>
<filter-class>
oracle.webcenter.generalsettings.model.filter.GeneralSettingsLocaleFilter
</filter-class>
</filter>
adfBindingsフィルタの後に、同じサーブレット名でフィルタを追加します。例:
<filter-mapping>
<filter-name>
generalSettingsLocaleFilter
</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
このフィルタが設定されていない場合は、最初にクライアントのブラウザのロケール設定がロケールの情報源になり、その後でADFロケール設定が情報源になります。
このフィルタが設定されている場合は、一般設定サービスがロケールの情報源になります。一般設定のロケール・プリファレンスが存在しない場合は、フィルタなしのデフォルト動作に戻されます。