BEA ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Server > Administration Console の拡張 > Administration Console の拡張 |
Administration Console の拡張
|
このマニュアルでは、BEA WebLogic Server Administration Console を拡張する方法について説明します。Administration Console を拡張すると、標準コンソール ページと一緒に表示する独自のコンソール画面を作成できます。以下の節では、コンソールを拡張するための手順について説明します。
BEA WebLogic Server Administration Console は、WebLogic Server ドメインを管理するためのブラウザ ベースのグラフィカル ユーザ インタフェースです。Administration Console の詳細については、『Administration Console オンライン ヘルプ』の「Administration Console について」を参照してください。Administration Console を拡張するには、標準の Administration Console 画面と一緒に表示する画面とナビゲーション要素を追加します。
コンソール拡張は、標準の Administration Console に組み込まれていない機能、または既存の機能の代替インタフェースを提供します。たとえば、コンソール拡張を使用すると、以下のことができます。
Administration Console 拡張を作成するには、Java プログラミング、JavaServer Pages (JSP)、HTML、および WebLogic Server Mbean に関する中級レベルの知識が必要です。Mbean は、WebLogic Server ドメインのシステム管理に使用する Java オブジェクトです。WebLogic MBean と WebLogic Server システム管理インフラストラクチャの詳細については、『管理者ガイド』の「システム管理のインフラストラクチャ」を参照してください。
Administration Console 拡張のサンプル コードは、BEA dev2dev Web サイトから入手できます。 Sample Administration Console Extension (WLS 7.0) をクリックし、ConsoleExtensionExample.zip ファイルをダウンロードしてください。独自のコンソール拡張を作成するには、このサンプルのファイルが必要です。
Administration Console 拡張のビジュアル要素
Administration Console 拡張には、以下のビジュアル要素を組み込むことができます (図 1-1 を参照)。
図1-1 Administration Console のビジュアル要素
コンソール拡張を作成するには、以下のプログラマティック要素を作成します。
Administration Console 拡張の主要な作成手順
Administration Console 拡張を作成するには、次の手順が必要です。
コンソール拡張を定義するには、weblogic.management.console.extensibility.Extension を拡張し、weblogic.management.console.extensibility.NavTreeExtension を実装する Java クラスを記述します。この Java クラスのサンプルについては、NavTreeExtension インタフェースを実装するためのサンプル Java クラスを参照してください。
注意: カスタム セキュリティ プロバイダのコンソール拡張を作成する場合は、weblogic.management.console.extensibility.NavTreeExtension インタフェースではなく、
weblogic.management.console.extensibility.SecurityExtension インタフェースを実装します (詳細については、「カスタム セキュリティ プロバイダ用のコンソール拡張の記述」を参照)。
コンソール拡張を表すノードをどこに配置するかは、そのコンソール拡張の機能によって決める必要があります。 たとえば、コンソール拡張がドメインの WebLogic Server インスタンスに関連している場合、そのコンソール拡張を ServerMBean (weblogic.management.configuration.ServerMBean) に関連付けて、そのコンソール拡張ノードを [サーバ] ノードに配置します。
コンソール拡張は、ノードの下に表示されるコンフィグレーション済みオブジェクトの各インスタンスの下に表示されます。 たとえば、[サーバ] ノード (ServerMBean) を選択した場合、コンソール拡張はドメイン内の各コンフィグレーション済みサーバの下に表示されます。 MBean のリストについては、weblogic.management.congfiguration パッケージの Javadoc を参照してください。
コンソール拡張をナビゲーション ツリーの最上位 (ドメイン) レベルに表示させる場合、その拡張を DomainMBean (weblogic.management.configuration.DomainMBean) に関連付けます。コンソールにはドメインの 1 つのインスタンスしか表示されないので、コンソール拡張は一度しか表示されません。
import weblogic.management.configuration.DomainMBean.
import weblogic.management.console.extensibility.
NavTreeExtension;
import weblogic.management.console.extensibility.Catalog;
import weblogic.management.console.extensibility.Extension;
import javax.servlet.jsp.PageContext;
final public class ExampleConsoleExtension extends Extension implements NavTreeExtension
public ExampleConsoleExtension() {}
このメソッドでは、Object 引数がコンソール拡張を表示するノードに関連付けられる MBean のインスタンスであるかどうかをテストします。 Object がこの MBean のインスタンスである場合、このメソッドはナビゲーション ツリー内のノードの動作を定義する JSP ページの URL を返します。それ以外の場合、null を返します。次に例を示します。
public String getNavExtensionFor(Object key)
{
if (key instanceof DomainMBean) {
System.out.println(
"¥nFound an instance of the DomainMbean¥n");
return "domain_navlink.jsp";
}
return null;
}
上記の例では、Administration Console は DomainMBean のノードを作成するときにこのメソッドを実行し、ドメインの名前を Object 引数として渡します。 Object は DomainMBean のインスタンスであるため、このメソッドは URL domain_navlink.jsp を返します。
注意: カスタム セキュリティ プロバイダのコンソール拡張を作成する場合は、getNavExtensionFor() メソッドを定義しないでください。 代わりに、「SecurityExtension インタフェースの使用によるカスタム セキュリティ プロバイダ関連の Administration Console ダイアログ画面の置き換え」で説明されているメソッドのいずれかを定義します。詳細については、SecurityExtension インタフェースの Javadoc を参照してください。
NavTreeExtension インタフェースの実装で説明したとおりに記述した Java クラスの getNavExtensionFor() メソッドは、ナビゲーション ツリーに表示される各コンソール拡張に対応する URL を返します。この URL は、このノードの動作を定義する JSP を指し示します。この JSP では、以下のものを定義します。
ナビゲーション ツリー ノードを定義する JSP を定義するには、次の手順に従います。
<%@ taglib uri='console_extension_taglib.tld' prefix='wl' %>
<wl:extensibility-key
id='domainKey'
class='MyObjectClass' />
MyObjectClass は、アクセスするオブジェクトの Java クラス名です。
詳細については、<wl:extensibility-key> タグを参照してください。
label 属性では、タブの表示名を定義します。この名前をローカライズする場合、labelId 属性を使用してローカライゼーション ライブラリ内でこの名前を参照します。ローカライゼーションの詳細については、コンソール拡張でのローカライゼーションの使い方を参照してください。
icon 属性はイメージ ファイルを指し示し、そのイメージをナビゲーション ツリー内のこのノードのアイコンとして表示します。 アイコンとして使用するイメージは、extension_files/images ディレクトリ内のサンプル アプリケーションに用意されています ( Administration Console 拡張のパッケージ化 の手順 1.を参照)。
<wl:node
label='<%="My Console Extension"%>'
icon='/images/folder.gif'
expanded='true'>
<wl:node
label='Nested Tabs'
icon='/images/bullet.gif'
url='/dialog_domain_example.jsp'>
</wl:node>
<wl:node label='Localization Examples'
icon='/images/bullet.gif'>
</wl:node>
</wl:node>
上のコードによって、図 1-2 に示すナビゲーション ツリー ノードが作成されます。
...
<wl:node
label='Localization Examples'
icon='/images/bullet.gif'>
<wl:menu
label='BEA Product Documentation'
url='http://e-docs.bea.com/index.html'
target='_blank'/>
<wl:menu-separator/>1
<wl:menu
label='BEA home'
url='http://www.bea.com'
target='_blank'/>
</wl:node>
...
上のコードによって、図 1-3 に示す右クリック メニューが作成されます。
コンソール拡張によって生成される実際のダイアログ画面は、ユーザがナビゲーション ツリー内のコンソール拡張のノードをクリックしたときに Administration Console の右ペインに表示されます。これらの画面を作成するには、付属の JSP タグ ライブラリを使用して JSP を記述します。タグ ライブラリのリファレンス情報については、コンソール拡張タグ ライブラリの使い方を参照してください。 表示される JSP は、「ナビゲーション ツリーの設定」で作成した JSP の <wl:node> タグの url 属性によって決定されます。
ダイアログ画面は、<wl:tab> JSP タグで定義する 1 つまたは複数のタブ付きダイアログを使用して作成します。これらのタブにはサブ タブをネストできますが、ネストは 1 レベルしかできません。各タブには、テキスト ラベルを明示的に指定するか、またはローカライゼーション カタログ内でそのタブのローカライズされたラベルを参照するためのラベル ID を指定できます。
各タブ (<wl:tab>...</wl:tab> タグ) の中では、JSP および HTML コードを使用してコンソール拡張の機能を作成できます。これらの中に表示されるテキストも、ローカライゼーション カタログを参照することによってローカライズできます。ローカライゼーション (コンソール拡張を複数の言語で表示する機能) の使い方については、コンソール拡張でのローカライゼーションの使い方を参照してください。
注意: コンソール拡張のユーザ インタフェースを作成する際には、さまざまなプログラミング テクニックを使用できます。これらのテクニックについては、このマニュアルの範囲を超えています。詳細については、以下を参照してください。
次に、コンソール拡張画面を表示する基本的な JSP を作成する手順を示します。
<%@ taglib uri='console_extension_taglib.tld' prefix='wl' %>
<html>
<head>
<wl:stylesheet/>
</head>
<body>
<div class=’content’>
<wl:dialog>
(Insert <wl:tab> statements here.)
</wl:dialog>
</div>
</body>
</html>
<head>...</head> ブロック内の <wl:stylesheet/> タグは省略可能です。このタグを組み込むと、指定するテキストのフォーマットが標準 WebLogic Server Administration Console ページと一致します。
各 <wl:tab> タグに対しては、name、label、およびlabelId 属性を定義できます。 各 <wl:tab> タグには終了タグ (</wl:tab>) が必要です。これらの属性の使い方については、<wl:tab> タグを参照してください。 <wl:tab> ブロックの中には、コンソール拡張ダイアログ画面の本体を表示する HTML および JSP コードを記述します。また、タブの表示ラベルをローカライズできます。詳細については、タブ ラベルのローカライズを参照してください。
たとえば、次のコードでは 2 つの最上位タブが作成され、各タブには 2 つのタブがネストされます。これらのタブがコンソールでどのように表示されるかについては、図 1-4 を参照してください。
<wl:tab name='TopLevelTabA' label='Top Level Tab A'>
<wl:tab name='NestedTabA1' label='Nested Tab A-1'>
(Insert your JSP and/or HTML code
for displaying your console extension here.)
</wl:tab>
<wl:tab name='NestedTabA2' label='Nested Tab A-2'>
(Insert your JSP and/or HTML code
for displaying your console extension here.)
</wl:tab>
</wl:tab>
<wl:tab name='TopLevelTabB' label='Top Level Tab B'>
<wl:tab name='NestedTabB1' label='Nested Tab B-1'>
(Insert your JSP and/or HTML code
for displaying your console extension here.)
</wl:tab>
<wl:tab name='NestedTabB2' label='Nested Tab B-2'>
(Insert your JSP and/or HTML code
for displaying your console extension here.)
</wl:tab>
</wl:tab>
注意: この手順は、コンソール拡張を定義する基本的な JSP を作成するためのものです。ローカライゼーションなどの他の機能を実現するタグも存在しますが、ここでは示しません。これらのタグについては、別の節で説明します。
Administration Console 拡張のローカライズ
前節の手順では、コンソール拡張を複数の言語で表示するためのローカライゼーションについては説明しませんでした。 コンソール拡張をローカライズする手順には、特別な JSP タグの使用、ローカライゼーション カタログの記述、すべてのローカライゼーション カタログを表示する index.xml ファイルの記述などが含まれます。 記述した index.xml ファイルとカタログ ファイルは、コンソール拡張を定義する Web アプリケーションにパッケージ化します (Administration Console 拡張のパッケージ化を参照)。
ローカライゼーションの詳細については、コンソール拡張でのローカライゼーションの使い方を参照してください。
Administration Console 拡張のパッケージ化
コンソール拡張の JSP と Java クラスは、J2EE Web アプリケーションとしてパッケージ化して WebLogic Server ドメインの管理サーバにデプロイします。
上記のファイルを、このコンソール拡張パッケージ化手順で示す場所にコピーします。図 1-5 に、これらのファイルの Web アプリケーション内での格納場所を示します。
web.xml デプロイメント記述子には、次の例に示す要素が定義されている必要があります。 NavTreeExtension インタフェースの実装 の手順 5.で作成したクラスの名前を MyConsoleExtension に置き換えます。完全なパッケージ名を指定する必要があります。
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>
My Weblogic Console Example Extension
</display-name>
<context-param>
<param-name>weblogic.console.extension.class</param-name>
<param-value>MyConsoleExtension</param-value>
</context-param>
<taglib>
<taglib-uri>console_extension_taglib.jar</taglib-uri>
<taglib-location>
WEB-INF/console_extension_taglib.tld
</taglib-location>
</taglib>
</web-app>
weblogic.xml デプロイメント記述子には、次の例に示す要素を挿入する必要があります。
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA
Systems, Inc.//DTD Web Application 7.0//EN"
"http://www.bea.com/servers/wls700/dtd/weblogic700-web-jar.dtd">
<weblogic-web-app>
<session-descriptor>
<session-param>
<param-name>CookieName</param-name>
<param-value>ADMINCONSOLESESSION</param-value>
</session-param>
</session-descriptor>
</weblogic-web-app>
図1-5 コンソール拡張のサンプル ディレクトリ レイアウト
+---MyConsoleExtensionWebApp
| | dialog_domain_example.jsp
| | dialog_example.jsp
| | domain_navlink.jsp
| | server_navlink.jsp
| | *.html, *.jsp
| |
| +---images
| | bullet.gif
| | smiley.gif
| | *.gif, *.jpg
| |
| ¥---WEB-INF
| | console_extension_taglib.tld
| | *.tld
| | web.xml
| |
| +---catalogs
| | english.xml
| | german.xml
| | index.xml;
| | japanese.xml
| |
| ¥---classes
| MyConsoleExtension.class
jar cvf MyConsoleExtension.war .
Web アプリケーションは、.war アーカイブ ファイルを使用せずに展開ディレクトリ形式でデプロイできます。展開形式によるデプロイメントは、コンソール拡張の開発時に便利です。「Administration Console 拡張のデプロイ」を参照してください。
Administration Console 拡張のデプロイ
コンソール拡張が収められた Web アプリケーションを作成したら、その Web アプリケーションを対象 WebLogic Server ドメインの管理サーバにデプロイします。 Web アプリケーションのデプロイについては、『WebLogic Server アプリケーションの開発』の「WebLogic Server デプロイメント」を参照してください。
コンソール拡張を有効にするには、Web アプリケーションをデプロイした後に管理サーバを再起動する必要があります。ナビゲーション ツリー ノードを定義する JSP を修正した場合、管理サーバを再起動してその変更をナビゲーション ツリーに反映させる必要があります。
Administration Console の再起動後、ダイアログ画面を定義する JSP を変更した場合、Web アプリケーションを再デプロイしてその変更を反映させます。Web アプリケーションを再デプロイするには、Administration Console を使用します。
NavTreeExtension インタフェースを実装するためのサンプル Java クラス
package weblogic.management.console.extensibility.example;
import javax.servlet.jsp.PageContext;
import weblogic.management.configuration.DomainMBean;
import weblogic.management.console.extensibility.Catalog;
import weblogic.management.console.extensibility.Extension;
import weblogic.management.console.extensibility.NavTreeExtension;
/**
* <p>コンソール拡張のサンプル実装</p>
*/
final public class ExampleConsoleExtension extends Extension implements NavTreeExtension {
// コンストラクタ
/**
* 引数を取らないパブリック コンストラクタが必要
*/
public ExampleConsoleExtension() {}
// =============================================================
// NavTreeExtension 実装
public String getNavExtensionFor(Object key)
{
if (key instanceof DomainMBean) {
System.out.println("==¥n== Found instance of DomainMbean¥n==");
return "domain_navlink.jsp";
}
return null;
}
// =============================================================
// オプションの拡張メソッド
/**
* <p>この例では特別な初期化作業は必要ない
* このため、このメソッドはメッセージを送信して
* コンソールが拡張を見つけたことを知らせる</p>
* <p>このメソッドを使用すると、コンソール拡張で必要な
* 初期化を実行できる</p>
*/
public void initialize()
{
System.out.println("==¥n== Example Extension for Domain Initialized!¥n==");
}
/**
* <p>ローカライゼーション カタログを参照することによって
* 拡張の名前を返す</p>
*/
public String getName(PageContext context)
{
return Catalog.Factory.getCatalog(context).
getText("example.extension.name");
}
/**
* <p>この拡張の簡単な説明を記述する</p>
*/
public String getDescription(PageContext context)
{
return Catalog.Factory.getCatalog(context).
getText("example.extension.description");
}
}
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |