以下の節では、管理コンソール拡張について説明します。
管理コンソール拡張は、一連のWebLogic Portal Webアプリケーションのリソースを格納するWARファイルです。拡張をデプロイすると、拡張WARファイル内のファイルとディレクトリをもとに、管理コンソールのWARファイル内にファイルとディレクトリのインメモリー・ユニオンが作成されます。デプロイした拡張は管理コンソールの完全なメンバーになります。この拡張はWebLogic Serverのセキュリティ・レルムによって保護され、管理コンソールの他のセクションへの移動が可能で、拡張によってWebLogic Serverのリソースが変更される場合には変更制御プロセスに関与します。
最も単純な拡張は管理コンソールのホーム・ページ(デスクトップ)にコンテンツを追加するものです。そのような拡張のWARファイルには以下のものが含まれています。
netuix-extension.xmlと呼ばれる管理コンソール拡張記述子ファイル。UI内での拡張の表示位置を記述します。
WebLogic Portalポートレットを定義するXMLファイル。JSPや他の種類のコンテンツのコンテナとして使用します。
表示するコンテンツを含むJSPファイル。
より複雑な拡張のWARファイルには、以下のような追加のリソースを含めることができます。
管理コンソールのUI内のタブにコンテンツを表示する場合は、その他の種類のWebLogic Portal UIコントロール(タブやサブタブなど。「管理コンソールの拡張ポイント」を参照)について記述したXMLファイルを含むWARファイル。
Apache Strutsを使用してビジネス・ロジックとナビゲーション・ロジックをカプセル化する場合は、Apache Strutsアプリケーションの構成ファイルとJavaクラスを格納したWARファイル。
Apache Beehiveを使用してビジネス・ロジックとナビゲーション・ロジックをカプセル化する場合は、Apache Beehiveアプリケーションの構成ファイルとJavaクラスを格納したWARファイル。
Javaクラス、画像ファイル、またはJava EE Webアプリケーションで使用可能なその他のリソース。
|
注意: 管理コンソールでは、WSRPポートレットやJSR 168ベースのポートレットはサポートされません。 |
WebLogic Portalフレームワークは、UIを表示するための基本的なサポートを提供します。正規のWebLogic Portal製品は、フレームワークと追加機能(パーソナライズ、対話管理、コンテンツ管理、エンド・ユーザーがポータル・デスクトップをカスタマイズするための機能など)を提供します。
WebLogic Serverがある場合は、WebLogic Portalフレームワークを使用して管理コンソール拡張を作成できます。開発したWebアプリケーションでポータル・インタフェースを提供する必要がある場合は、WebLogic Portal製品を使用してください。
拡張ポイントとは、コンテンツを追加または置換できる管理コンソールのUI内の場所のことです。管理コンソールのUIは、UIコントロールと呼ばれるWebLogic Portalコンポーネントのグループごとに表示されます。コントロールの各グループはUIの特定の部分の表示を担当します。たとえば、あるグループは、ユーザーが管理コンソールへログインした後に2列のレイアウトを表示します。別のグループは、タブ付きインタフェース内の個別のタブを表示します。
管理コンソールではUIコントロールの多くにユニークなラベルが付いており、ラベル付きの各コントロールは拡張ポイントとなります。WebLogic Server JSPタグでこれらのラベルを使用して、リクエストを特定のUIコントロールに転送することもできます。ラベルで特定できないUIコントロールは、拡張したりリクエストを転送したりできません。その場合は、ラベル付きの祖先コントロールまたは子コントロールと対話する必要があります。
アプリケーションのUIコントロールは、ポータル・ブック・ファイル(.bookファイル)と呼ばれるXMLファイル内に定義されます。このXMLファイルのスキーマではUIコントロールの階層を指定します。UIコントロールの中には階層内の複数のレベルで使用できるものもあります。以下のリストでは、拡張の開発時に最もよく使用されるUIコントロールの種類について説明します(図2-1を参照)。
デスクトップ
UIコントロール階層の最上位レベルです。管理コンソールおよび最上位のブック・コントロールのルック・アンド・フィールを格納します。
ルック・アンド・フィール
画像、カスケーディング・スタイル・シート、XMLファイル、およびその他のファイル・タイプを集めたもので、これによってポータル・アプリケーションの外観を制御します。
ブック
ページのセットや他のブックを集約します。集約したページやブックの間を移動するためのメニュー・コントロールを含めることもできます。管理コンソールの多くのブックはこのメニュー・コントロールを使用してタブを表示します(ドメインの「構成: 一般」タブなど)。
ページ
レイアウト、ポートレット、またはブックが含まれています。
レイアウト
UI内のグリッドを定義します。グリッド内の各列はプレースホルダーと呼ばれ、各プレースホルダーでゼロ個以上のポートレットやブックをホストできます。
管理コンソール内のほとんどのページでは単一列のレイアウトが使用されていますが、トップ・ページの1つでは2列のレイアウトを使用して、左の列にチェンジ・センターやドメイン構造などのポートレットを表示し、右の列にタブ付きインタフェースを表示しています。
ポートレット
表示する静的および動的なコンテンツを定義します。管理コンソールには、JSPファイルを含むポートレットや、Struts ActionまたはBeehiveページ・フローに転送するポートレットを追加できます。
UIコントロールのスキーマの詳細は、ポータル・サポート・スキーマ・リファレンスを参照してください。
|
注意: 図2-1では、簡潔にするため、階層内の中間的なコントロールは一部省略しました。たとえば、ブック・コントロールにページ・コントロールが直接含まれることはありません。かわりに、ブックにはコンテンツというコントロールが含まれ、コンテンツ・コントロールにはページ・コントロールが含まれます。 |
以下の節では、管理コンソールの拡張ポイントについて説明します。
WebLogic Portal Webアプリケーションには必ず1つ以上のデスクトップ・コントロールが必要ですが、管理コンソールでサポートされるのは1つのみです。デスクトップ・コントロールのラベルはdefaultDesktopLabel (図2-2を参照)です。
管理コンソールのこのレベルでサポートされる拡張の種類はルック・アンド・フィール拡張のみです。ルック・アンド・フィールはOracleのロゴ、色、およびフォントを置換します。第5章「管理コンソールのリブランディング」を参照してください。
Homeブックを置換したり、デスクトップに他のコントロールを追加することはできません。
管理コンソールのルック・アンド・フィールでは、フォントと色、Oracleロゴ、ポータル・コンポーネントのレイアウト、およびナビゲーション・メニューを定義します。
|
注意: 管理コンソールではWebLogic Portalフレームワークのみを使用するため、ルック・アンド・フィールは1つしかサポートされません。Oracle WebLogic Portal製品で利用可能なすべての機能を使用するポータル・アプリケーションであれば、ユーザーやグループのIDごとにパーソナライズされた複数のルック・アンド・フィールをサポートできます。 |
会社のロゴ、フォント、カラー・スキームを含む単純なルック・アンド・フィールの拡張を作成するには、WebLogic Serverに含まれているサンプルのルック・アンド・フィールのロゴやカスケーディング・スタイル・シート(CSS)定義を置き換えます。ポータル・コンポーネントやナビゲーション・メニューのレイアウトを変更するなど、WebLogic Serverルック・アンド・フィールに複雑な変更を加える場合は、WebLogic Portalルック・アンド・フィールに関してより高度な知識が必要になります。Oracle Workshop for WebLogic Platform 9.2以降がある場合は、ルック・アンド・フィール・エディタを使用してこうした複雑な変更を加えられます。ルック・アンド・フィールの詳細は、『Oracle WebLogic Portalポータル開発ガイド』のルック・アンド・フィールの機能を使用したユーザー・インタフェース開発に関する項を参照してください。
管理コンソールの最上位のブックは、ラベルHomeで識別されます。この最上位のブックには、すべての管理コンソールコンテンツが属す1つのページ(ラベルpage)が含まれます(図2-3を参照)。
pageページでは、2列のレイアウトが使用されています。左の列(レイアウト・ロケーション0)には、管理コンソールを使用する際に不可欠なサービスを提供するポートレットが含まれています。右の列(レイアウト・ロケーション1)には、以下が含まれています。
ポートレット。
最上部のポートレットには、ウェルカム・メッセージが表示され、オンライン・ヘルプなどのサービスを起動するボタンが配置されています。
2番目のポートレットには、階層リンク(管理コンソール内でのナビゲーション(移動)の履歴を保持する一連のハイパーリンク・テキスト)が表示されます。
3番目のポートレットは、デフォルトでは非表示。エラー・メッセージやその他のステータス・メッセージが表示されます。
ContentBookという名前のブック。「ContentBook」を参照してください。
ContentBookは、40を超えるページを含むブックですが(図2-4を参照)、一度に1つのページのみを表示します。管理コンソール全体のナビゲーション・コントロールによって、どのページを表示するかが決まります。
図2-4では、CoreDomainBookというページにCoreDomainConfigGeneralBookというブックが含まれています。CoreDomainConfigGeneralBookには6つの子ブックと、子ブックごとのタブ(「構成」、「モニター」、「制御」、「セキュリティ」、「Webサービス・セキュリティ」、「ノート」)を表示するsingleLevelMenuという特別なUIコントロールが含まれています。各子ブック(DomainconfigTabPageなど)には、複数の子ページ・コントロールとsingleLevelMenuコントロールが含まれています。ルック・アンド・フィールは、singleLevelMenuコントロールに、このレベルのページ・コントロール用のサブタブ(「一般」、「JTA」、「EJB」、「Webアプリケーション」、「SNMP」、「ロギング」、「ログ・フィルタ」)を生成させます。
コンテンツ固有のブックには、子ブック用のタブ付きインタフェースを表示しないものもあります。図2-5にタブ付き インタフェース を表示しないServerBookを示します。
ContentBook内での最も単純な拡張は、コンテンツ固有のブックに子ブックを追加してタブを作成したり、子ページを追加してサブタブを作成したりすることです。「 UIコントロールの定義(オプション)」を参照してください。
図2-6に、管理コンソールのラベル付きUIコントロールの最上位を示します。すべてのコンテンツ固有ブックを含むラベル付きの全UIコントロールのリストを見るには、 UIコントロール・ラベルを表示するための環境設定の構成の説明に従って、管理コンソールですべてのコンソール拡張ポイントを表示できます。
Oracleでは、表、データ入力ボックス、ボタンなどのUI機能の表示に使用できるJSPテンプレートとタグ・ライブラリを提供しています。JSPテンプレートの詳細は、「WebLogic ServerのJSPテンプレート」を参照してください。
管理コンソールでは、管理コンソール拡張で使用できる独自のタグ・ライブラリ(console-html.tld)が用意されています。管理コンソール自体が使用する、標準のサード・パーティのタグ・ライブラリに対する実行時サポートも提供されます。
これらのサード・パーティのJSPタグ・ライブラリをJSPにインポートするには、あらかじめ定義された絶対URIを使用する必要があります。管理コンソールのweb.xmlファイルでは、これらのURIを、インストールされているWebLogic Server内部のタグ・ライブラリにマップします。このマッピング機能によって、ユーザーがJSPを変更しなくても、タグ・ライブラリのインストール・ディレクトリが認識されます。
表2-1に、管理コンソールが実行時サポートを提供するタグ・ライブラリと、JSPへインポートするためのURIを示します。
これらのライブラリの開発サポートが必要な場合(たとえば、JSPタグのコード補完を提供する統合開発環境を使用する場合)は、これらのタグが含まれるように開発環境を構成する必要があります。
|
注意: カスタム・タグ・ライブラリを作成したり、付加的なタグ・ライブラリを使用したりできますが、カスタム・タグ・ライブラリで必要となるすべてのサポート・ファイルを拡張WARファイルに含める必要があります。『Oracle WebLogic Server JSPタグ拡張のプログラミング』を参照してください。 |
表2-1 サポートされるJSPタグ・ライブラリ
| タグ・ライブラリおよびURI | 説明 |
|---|---|
|
タグ・ライブラリ: URI: |
管理コンソールのフォームや表の機能に調和するHTMLフォームやHTML表を作成するためのWebLogic Server JSPタグ。 これらのタグは、WebLogic Server管理コンソールを拡張する場合にのみ使用します。 このタグ・ライブラリのドキュメントは、Oracle WebLogic Server JSPタグ・リファレンスにあります。 |
|
タグ・ライブラリ: URI: |
ポータル・フレームワークURLを生成するためのコンビニエンス・タグ。「Portal Framework JSP Tag Javadoc」の |
|
タグ・ライブラリ: URI : |
JSPをJSPテンプレートに関連付けるためのApache Beehive JSPタグ。 このタグ・ライブラリとドキュメントを含むBeehiveディストリビューションは、 |
|
タグ・ライブラリ: URI: |
データ・バインディング用のApache Beehive JSPタグ。 このタグ・ライブラリとドキュメントを含むBeehiveディストリビューションは、 |
|
タグ・ライブラリ: URI : |
基本的なHTMLタグを生成するためのApache Beehive JSPタグ。 このタグ・ライブラリとドキュメントを含むBeehiveディストリビューションは、 |
|
タグ・ライブラリ: URI: |
多くのJSPアプリケーションに共通の中核機能を提供するJavaServer Pages Standard Tag Library (JSTL)タグ。 JSTLディストリビューションは、 これらのタグ・ライブラリのドキュメントは、JSTLタグ・ライブラリ・リファレンス( |
|
タグ・ライブラリ: URI: |
多くのJSPアプリケーションに共通の中核機能を提供するJavaServer Pages Standard Tag Library (JSTL)タグ。 JSTLディストリビューションは、 これらのタグ・ライブラリのドキュメントは、JSTLタグ・ライブラリ・リファレンス( |
|
タグ・ライブラリ: URI: |
Strutsフレームワークとの対話に使用するApache Strutsタグ。 Strutsディストリビューションは、 これらのタグ・ライブラリのドキュメントは、 |
|
タグ・ライブラリ: URI: |
Strutsフレームワークとの対話に使用するApache Strutsタグ。 Strutsディストリビューションは、 これらのタグ・ライブラリのドキュメントは、 |
|
タグ・ライブラリ: URI: |
Strutsフレームワークとの対話に使用するApache Strutsタグ。 Strutsディストリビューションは、 これらのタグ・ライブラリのドキュメントは、 |
|
タグ・ライブラリ: URI: |
Strutsフレームワークとの対話に使用するApache Strutsタグ。 Strutsディストリビューションは、 これらのタグ・ライブラリのドキュメントは、 |
以下の手順では、ポータル・フレームワークが拡張のソース・ファイルを使用してStrutsポートレットを検索し、ContentBookブック内にタブとして表示する方法について説明します。
ポータル・フレームワークは最初に、拡張のnetuix-extension.xmlファイルを解析します。
この例のnetuix-extension.xmlファイルでは、ポータル・フレームワークがmedrecMonitor.bookという.bookファイルをロードして、その内容をCoreDomainConfigGeneralBookブックの子として表示することを指定しています。
<book-extension>
<book-location>
<parent-label-location label="CoreDomainConfigGeneralBook"/>
<book-insertion-point action="append"/>
</book-location>
<book-content content-uri="/controls/medrecMonitor.book"/>
</book-extension>
ポータル・フレームワークはmedrecMonitor.bookファイルをロードします。このファイルでは、ページUIコントロールを定義し、そのページにポートレットが含まれることを指定しています。
<netuix:page markupName="page" markupType="Page">
...
<netuix:portletInstance markupType="Portlet"
instanceLabel="medrecMonitor.Tab.Portlet"
contentUri="/portlets/medrec_monitor_tab.portlet"/>
</netuix:page>
ポータル・フレームワークはポートレット・ファイルをロードします。このファイルでは、以下のように実行するStruts Actionを指定しています。
<portal:root>
<netuix:portlet
definitionLabel="MyPortlet"
title="my.portlet.title">
<netuix:strutsContent module="/medrecMBean"
action="MedRecMBeanFormAction"
refreshAction="MedRecMBeanFormAction"/>
</netuix:portlet>
</portal:root>
netuix:strutsContent要素のmodule="/medrecMBean"属性では、MedRecMBeanFormActionというStruts Actionの定義が、medrecMBeanというStrutsモジュールのStruts構成ファイルにあることを示しています。Strutsの命名規則では、この構成ファイルをstruts-auto-config-medrecMBean.xmlという名前にする必要があります。
ポータル・フレームワークは制御をStrutsコントローラ・サーブレットに渡します。このサーブレットはstruts-auto-config-medrecMBean.xmlファイルを解析して、MedRecMBeanFormActionの以下の定義を検索します。
<action path="/MedRecMBeanFormAction"
type="com.bea.medrec.extension.MedRecMBeanFormAction"
name="medrecMBeanEJBForm"
scope="request"
validate="false">
<forward name="success" contextRelative="true"
path="/ext_jsp/form_view.jsp"/>
</action>
Strutsコントローラ・サーブレットはaction要素のname="medrecMBeanEJBForm"属性を見つけると、同じStruts構成ファイルでmedrecMBeanEJBFormというフォームBeanの定義を探します。
構成ファイル で次の要素が見つかった場合は、
<form-bean name="medrecMBeanEJBForm"
type="org.apache.struts.action.DynaActionForm">
<form-property name="name"
type="java.lang.String"/>
<form-property name="handle"
type="com.bea.console.handles.Handle"/>
<form-property name="totalRx"
type="java.lang.Integer"/>
</form-bean>
name、handle、およびtotalRxというプロパティを指定して、org.apache.struts.action.DynaActionForm型のJava Beanを初期化します。
Strutsコントローラ・サーブレットはcom.bea.medrec.extension.MedRecMBeanFormActionクラスを呼び出して、インスタンス化したDynaActionForm Beanをこのクラスに渡します。
MedRecMBeanFormActionクラスはMedRecアプリケーションのMBeanからデータを収集し、そのデータをDynaActionForm Beanのプロパティに格納します。
MedRecMBeanFormActionクラスはデータを格納したDynaActionForm Beanを返します。
StrutsコントローラはDynaActionForm BeanをシリアライズしてHTTPリクエスト内に設定し、JSPに転送します。
JSPはJSPタグを使用してDynaActionForm Bean内のデータを表示します。