Administration Console の拡張
![]() |
![]() |
![]() |
![]() |
この節では、Administration Console の JSP テンプレート、スタイル、およびユーザ入力コントロールを使用するポートレットを追加する方法について説明します。たとえば、以下のようなコンテンツを表示するポートレットを追加できます。
ContentBook
に表示し、ユーザが特定のリソースに移動したり、テーブルからリソースのアクションを呼び出したりできるようにする (図 2-4 に示した WebLogic Server テーブルの例を参照してください)。ContentBook
にタブを表示し、提供したリソースをユーザがモニタしたりコンフィグレーションしたりできるようにする。図 5-1 にこのプロセスを示します。プロセスの手順、および各手順の結果については、表 5-1 を参照してください。プロセスの各手順の詳細については、それ以降の節を参照してください。
図 5-1 Administration Console 拡張の開発の概要
JSP で表示するテキスト文字列は、すべてメッセージ バンドルで定義することをお勧めします。
メッセージ バンドルを作成して使用するには、次の手順に従います。
次に例を示します。myextension.myTab.introduction=This page provides monitoring data for my application.
myextension.myTab.TotalServletHits.label=Total hits for my servlet.
dev-dir
は、拡張のルート ディレクトリです。bundle
はユニークな値です (WebLogic Server のバンドルの名前である global
は使用しないでください)。bundle
の値としては、会社名を使用することをお勧めします。locale
は java.util.Locale
でサポートされるロケール コードです。『J2SE API Specification』の「Locale
」を参照してください。
たとえば、mycompany_ja.properties
のようになります。
bundle
.properties
という名前のファイルは必ず作成してください。ユーザがロケールを指定しなかった場合、これがデフォルトのファイルになります。
フォーム (およびフォームとして機能するテーブル) を表示および送信するすべての WebLogic Server JSP タグは、Apache Struts がコントローラ エージェントであることを前提としています。JSP タグは、Struts ActionForm (フォーム Bean) によって値が設定される Java Bean を使用して、ユーザ入力を Struts アクションに送信します。Apache Struts については、「The Apache Struts Web Application Framework」 (http://struts.apache.org/) を参照してください。
<wl-extension:table>
などの一部のタグでは、Java Bean の集まりであるプロパティを保持するフォーム Bean が必要になります。各 Bean は、テーブルの行として表示される単一のオブジェクトまたはコンポーネントを記述します。Administration Console の各 JSP タグ、および必要となる Java Bean プロパティについては、『WebLogic Server 9.0 JSP タグ リファレンス』を参照してください。
拡張で WebLogic Server リソースを管理する場合は、WebLogic Server 管理対象 Bean (MBean) からの属性値を Java Bean プロパティに設定する Struts ActionForm を作成します。同様に、MBean の値の設定または MBean の操作の呼び出しを行う Struts アクションを作成します。WebLogic Server MBean の使用方法については、『JMX によるカスタム管理ユーティリティの開発』および『JMX による管理の容易なアプリケーションの開発』を参照してください。
Struts モジュールは、Struts コンフィグレーション ファイル、メッセージ バンドル、およびその他の関連リソースです。すべての Struts アプリケーションには、1 つのデフォルト モジュールが必要です。Struts 1.1 以降のアプリケーションには、それぞれにユニークな名前を付けた複数のモジュールを含めることができるようになりました。詳細については、Struts の「Newbie FAQ」 (http://struts.apache.org/faqs/newbie.html#modules) を参照してください。
WebLogic Server Administration Console ではすでにデフォルト モジュールを使用しているため、拡張用に独自のモジュールを作成する必要があります。WebLogic Server の命名規約に従って名前を付ければ、Administration Console によって自動的に検出されて Apache Struts コントローラ サーブレットに登録されます。
Administration Console 拡張用の名前付き Struts モジュールを作成するには、次の手順に従います。
<netuix:portlet>
要素に module="/
MyModule
"
属性を含めます (「サンプル : [ドメイン : コンフィグレーション : 全般] ポートレット内のフォーム」を参照してください)。Struts モジュールの追加機能の使用については、『Apache Struts User Guide』の「Configuring your application for modules」を参照してください。
[ドメイン : コンフィグレーション : 全般] ポートレットは、ドメインのコンフィグレーション データを提供するためのフォームを表示します。Administration Console でこのポートレットがロードされると以下が行われます。
DomainConfigGeneral
アクション パスに転送します。このアクション パスは、Struts コンフィグレーション ファイルで定義した ActionForm を参照します。コンフィグレーション ファイルおよび関連付けられたリソースは、core
という名前の Struts モジュールに含まれています。 以下は、ポートレットの .portlet
ファイルからの抜粋です。
<netuix:portlet definitionLabel="CoreDomainDomainConfigGeneralPortlet"
title="core.domain.domainconfiggeneral.portlet.title">
<netuix:strutsContent module="/core"
action="DomainConfigGeneral"
refreshAction="DomainConfigGeneral"/>
</netuix:portlet>
<action path="DomainConfigGeneral">
要素に指定されたフォーム Bean をインスタンス化します (コード リスト 5-1 を参照してください)。コード リスト 5-1 [ドメイン : コンフィグレーション : 全般] ポートレットの ActionForm
...
<form-bean name="domainConfigGeneralForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="name"
type="java.lang.String"/>
<form-property name="handle"
type="com.bea.console.handles.Handle"/>
<form-property name="domainConfigGeneral"
type="com.bea.console.cvo.core.domain.DomainConfigGeneralBean"/>
</form-bean>
...
<action path="/DomainConfigGeneral"
type="com.bea.console.actions.core.domain.DomainConfigGeneralAction"
name="domainConfigGeneralForm"
parameter="tab"
scope="request"
validate="false">
<forward name="success"
contextRelative="true"
path="/jsp/core/domain/DomainConfigGeneralForm.jsp"/>
</action>
Administration Console JSP 内のほとんどのポートレットは、tableBaseLayout_netui
および configBaseLayout_netui
テンプレートをベースにしています。これらのテンプレートについては、「WebLogic Server の JSP テンプレート」を参照してください。
以下の節では、これらのテンプレートを使用して JSP を作成する方法について説明します。
Administration Console の JSP テンプレートでは、JSP Standard Tag Library (JSTL)、BEA Administration Console 拡張タグ ライブラリ、Apache Beehive ページ フロー タグ ライブラリの JSP タグを使用する必要があります。
WebLogic Server の実行時環境では、これらのタグ ライブラリがあらかじめ提供されています。これらを開発においてサポートするには、開発環境に以下のタグ ライブラリを追加します。WL_HOME
/server/lib/consoleapp/webapp/WEB-INF/beehive-netui-tags-html.tld
WL_HOME
/server/lib/consoleapp/webapp/WEB-INF/fmt.tld
WL_HOME
/server/lib/consoleapp/webapp/WEB-INF/console-html.tld
テーブル JSP は、複数のリソースをテーブルにまとめ、それらのリソースへのナビゲーションを提供します (図 2-4 を参照してください)。拡張において、複数のリソースや単一のリソースの複数のインスタンスを管理する場合は、テーブル JSP を作成します。
注意 : テーブルにボタンやチェック ボックスを配置すると、1 つまたは複数の行を選択し、選択した項目のアクションを呼び出すことができます。この機能の詳細については、『WebLogic Server 9.0 JSP タグ リファレンス』の「<wl-extension:table>
」を参照してください。
テーブル JSP を作成する前に、フォーム Bean に値を設定して JSP に転送するための Struts ActionForm を作成します (「Struts ActionForm とアクションの作成」を参照してください)。このフォーム Bean には、少なくとも以下のプロパティを含める必要があります。
name
という名前のプロパティ。フォーム Bean を特定します。Array
を格納するプロパティ。これらの各 Java Bean (行 Bean) には、表示するテーブル行ごとに 1 つのプロパティを含める必要があります。 テーブル JSP を作成するには、次の手順に従います (コード リスト 5-2 を参照してください)。
dev-dir
/jsp
を作成します。dev-dir
は開発用のディレクトリです。詳細については、「拡張のアーカイブとデプロイメント」を参照してください。<%@ taglib uri="/WEB-INF/console-html.tld" prefix="wl-extension" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/beehive-netui-tags-template.tld" prefix="beehive-template" %>
これらのタグ ライブラリについては、「JSP タグ ライブラリ」を参照してください。
<beehive-template:template
templatePage="/layouts/tableBaseLayout_netui.jsp">
このタグはまだ閉じないでください。テーブル JSP の他の JSP タグは、すべてのこのテンプレート タグ内にネストします。
<beehive-template:section name="configAreaIntroduction">
タグを作成します。このタグの中に、テーブルの概要を説明する文章を入力します。この説明は、テーブルの上に表示されます。name
。このテーブル用にコンフィグレーションしたフォーム Bean の名前を指定します。property
。行 Bean を格納するフォーム Bean プロパティの名前を指定します。bundle
。(省略可能) 列の見出しのローカライズ名を含むメッセージ バンドルの名前を指定します。captionEnabled
。(省略可能) テーブルの上にタイトルを表示する場合は「true」を指定します。<wl-extension:column>
タグ内に <wl-extension:column-link>
内をネストします。<wl-extension:column-link>
タグのポートレット属性には、リンクするポートレットの definitionLabel
を指定します。ポートレットの <wl-extension:column-link>
と definitionLabel
を使用する代わりに、<wl-extension:column-dispatch>
と、ポートレットに定義したメタデータの値、およびこのテーブルのフォーム Bean に含める必要のある追加のプロパティの値を使用することもできます。メタデータを使用してリンク対象を指定すると、指定したメタデータを含むすべてのポートレットへの転送が可能になります。『WebLogic Server 9.0 JSP タグ リファレンス』の「column-dispatch」を参照してください。
コード リスト 5-2 サンプル : 単純なテーブル JSP
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/console-html.tld" prefix="wl" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/beehive-netui-tags-template.tld" prefix="beehive-template" %>
<fmt:setBundle basename="core" var="current_bundle" scope="page"/>
<beehive-template:template templatePage="/layouts/tableBaseLayout_netui.jsp">
<beehive-template:section name="configAreaIntroduction">
<fmt:message key="core.server.servertable.introduction"
bundle="${current_bundle}"/>
</beehive-template:section>
<beehive-template:section name="table">
<wl-extension:table name="extensionForm"
property="contents"
captionEnabled="true"
bundle="core">
<wl-extension:caption>
<fmt:message key="server.table.caption"
bundle="${current_bundle}"/>
</wl-extension:caption>
<wl-extension:column property="name" label="server.table.label.name">
<wl-extension:column-link portlet="MyPortletID"/>
</wl-extension:column>
<wl-extension:column property="clusterName"
label="server.table.label.cluster"/>
<wl-extension:column property="machineName"
label="server.table.label.machine"/>
</wl-extension:table>
</beehive-template:section>
</beehive-template:template>
コンフィグレーション JSP は、フォームを使用してリソースのコンフィグレーションを表示し、ユーザがコンフィグレーションを変更できるようにします (図 2-3 を参照してください)。ユーザがリソースをモニタするための読み取り専用のコンフィグレーション JSP を作成することもできます。
Administration Console の JSP タグを使用すると、テキスト、テキスト領域、ラジオ ボタンなどの標準の HTML 入力コントロールを表示できます。
コンフィグレーション JSP を作成する前に、フォーム Bean に値を設定して JSP に転送するための Struts ActionForm を作成します (「Struts ActionForm とアクションの作成」を参照してください)。このフォーム Bean には、少なくとも以下のプロパティを含める必要があります。
name
という名前のプロパティ。フォーム Bean を特定します。コンフィグレーション JSP を作成するには、次の手順に従います (コード リスト 5-3 を参照してください)。
dev-dir
/jsp
を作成します。dev-dir
は開発用のディレクトリです。詳細については、「拡張のアーカイブとデプロイメント」を参照してください。<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/console-html.tld" prefix="wl-extension" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/beehive-netui-tags-template.tld" prefix="beehive-template" %>
これらのタグ ライブラリについては、「JSP タグ ライブラリ」を参照してください。
<beehive-template:template templatePage="/layouts/configBaseLayout_netui.jsp">
このタグはまだ閉じないでください。コンフィグレーション JSP の他の JSP タグは、すべてのこのテンプレート タグ内にネストします。
<beehive-template:section name="configAreaIntroduction">
タグを作成します。このタグの中に、フォームの概要を説明する文章を入力します。この説明は、フォームの上に表示されます。この JSP タグはフォームを表示するタグですが、さまざまな種類のフォームを表示できます。フォーム関連のすべての JSP タグは XML を出力しますが、<wl-extension:template>
タグに指定した XSLT テンプレートによって XML が XHTML に変換されます。WebLogic Server には、以下のテンプレートが用意されています。
/WEB-INF/templates/form.xml
。Administration Console のコンフィグレーション ページ (たとえば [ドメイン : コンフィグレーション : 全般]) と調和するフォームを作成します。このテンプレートでは、フォームを送信するボタンも生成されます。/WEB-INF/templates/assistant.xml
。Administration Console アシスタントと調和するフォームを作成します。/WEB-INF/templates/tablePreferences.xml
。Administration Console でのテーブル表示のカスタマイズに使用するページと調和するフォームを作成します。action
。ユーザがこのフォームを送信したときに呼び出される Struts アクションのパスを指定します。アクションのパスを定義する Struts モジュールは、リクエスト内で指定されます。bundle
。(省略可能) 列の見出しのローカライズ名を含むメッセージ バンドルの名前を指定します。readOnly
。(省略可能) このフォームを読み取り専用にする (たとえば、読み取り専用のモニタ データを表示する) 場合は「true」を指定します。<wl-extension>
タグを作成します (『WebLogic Server 9.0 JSP タグ リファレンス』を参照してください)。コード リスト 5-3 サンプル : 単純なコンフィグレーション JSP
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/console-html.tld" prefix="wl" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/beehive-netui-tags-template.tld"
prefix="beehive-template" %>
<fmt:setBundle basename="core" var="current_bundle" scope="page"/>
<beehive-template:template templatePage="/layouts/configBaseLayout_netui.jsp">
<beehive-template:section name="configAreaIntroduction">
<fmt:message key="core.server.serverconfiggeneral.introduction"
bundle="${current_bundle}"/>
</beehive-template:section>
<beehive-template:section name="form">
<html:xhtml/>
<wl-extension:template name="/WEB-INF/templates/form.xml">
<wl-extension:form action="/CoreServerServerConfigGeneralUpdated" bundle="core">
<wl-extension:text property="serverConfigGeneral.Name"
labelId="core.server.serverconfiggeneral.name.label"
inlineHelpId="core.server.serverconfiggeneral.name.
label.inlinehelp" />
<wl-extension:select property="serverConfigGeneral.selectedMachine"
labelId="core.server.serverconfiggeneral.machine.label"
inlineHelpId="core.server.serverconfiggeneral.machine.
label.inlinehelp">
<wl-extension:optionsCollection
property="serverConfigGeneral.availableMachines"
label="label" value="value"/>
</wl-extension:select>
</wl-extension:form>
</wl-extension:template>
</beehive-template:section>
</beehive-template:template>
.portlet
XML ファイルは、JSP や Struts アクションなどのコンテンツのコンテナとして使用する WebLogic Portal ポートレットを定義します。Administration Console 内のすべての JSP は、ポートレット内に格納する必要があります。ポートレット XML ファイルの詳細については、『Portal Support Schema Reference』を参照してください。
WebLogic Server テンプレートおよびその必須 Struts アクションに基づいて JSP を格納するポートレットを作成するには、次の手順に従います。
拡張内のすべてのポートレット XML ファイルを格納するサブディレクトリを作成することをお勧めします。たとえば、dev-dir
/PortalConfig
を作成します。dev-dir
は開発用のディレクトリです。詳細については、「拡張のアーカイブとデプロイメント」を参照してください。
次の命名規約を使用することをお勧めします。JSP-file-name-no-extension
.portlet
JSP-file-name-no-extension
は、ポートレットに格納する JSP ファイルの名前です。たとえば、ポートレットに monitorEJB.jsp
という名前の JSP ファイルを格納する場合は、ポートレット XML ファイルの名前を monitorEJB.portlet
にします。
Label
。ポータル フレームワークでこのポートレットを特定するためのユニークな識別子に変更します。Title
。ルック アンド フィールでタイトル バーが表示されることになっている場合に、このポートレットのタイトル バーに表示するデフォルトのタイトルに変更します。Struts-module
。テーブル JSP およびコンフィグレーション JSP で使用する ActionForm を定義する Struts モジュールを指定します。入力する値は、/WEB-INF
に保存した XML ファイル名の一部でなければなりません。たとえば、Struts-module
に「myModule
」と指定した場合、Struts コントローラ サーブレットは次の場所でアクション パスを検索します。/WEB-INF/struts-auto-config-myModule.xml
action-path
。Struts モジュール内で定義した Struts アクションへのパスを指定します。このアクションは、ActionForm を作成してテーブル JSP またはコンフィグレーション JSP に転送するアクションでなければなりません。「Struts ActionForm とアクションの作成」を参照してください。refresh-action-path
。このポートレットの後続のリクエストで呼び出すアクション (たとえば、ドキュメントをリフレッシュするユーザ エージェント) を指定します。 この .portlet
では、テーブル JSP やコンフィグレーション JSP の名前を指定しないことに注意します。この JSP の名前は、Struts コンフィグレーション ファイルで指定します。
コード リスト 5-4 単純な .portlet XML ファイルのテンプレート
<?xml version="1.0" encoding="UTF-8"?>
<portal:root xmlns:html="http://www.w3.org/1999/xhtml-netuix-modified/1.0.0"
xmlns:portal="http://www.bea.com/servers/netuix/xsd/portal/support/1.0.0"
xmlns:netuix="http://www.bea.com/servers/netuix/xsd/controls/netuix/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/servers/netuix/xsd/portal/
support/1.0.0 portal-support-1_0_0.xsd">
<netuix:portlet definitionLabel="Label" title="Title" >
<netuix:strutsContent module="
Struts-module"
action-path
action=""
refresh-action-path
refreshAction=""/>
</netuix:portlet>
</portal:root>
ポートレットをデスクトップに直接追加することもできますが、ポートレットを ContentBook
内のタブやサブタブとして表示する場合は、それを格納するブックまたはページを定義する必要があります。また、netuix-extension.xml
ファイルを作成する必要もあります。このファイルは、ポートレット、ブック、およびページの位置を指定し、拡張のデプロイメント記述子として機能します。
「ポートレットとナビゲーション コントロールの追加」を参照してください。
![]() |
![]() |
![]() |