ナビゲーションをスキップ

Administration Console の拡張

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

ポートレットとナビゲーション コントロールの追加

Administration Console では、すべてのコンテンツがポートレット内に格納されるため、拡張を最低限にする場合でもポートレット (およびポートレットのコンテンツ) を定義しなければならない場合がほとんどです。ポートレットをデスクトップに直接追加することもできますが、ポートレットを ContentBook 内のタブやサブタブとして表示する場合は、それを格納するブックまたはページを定義する必要があります。拡張で NavTreePortlet にノードを追加することもできます。そうすることで、追加したポートレットに、ユーザがデスクトップから直接移動できるようになります。

この節では、単純な静的コンテンツを含むポートレットを Administration Console に追加する方法について説明します。動的なコンテンツを含むポートレット (Apache Struts アクションを起動するポートレットなど) の追加については、「Administration Console と調和するポートレットの作成」を参照してください。

図 4-1 にこのプロセスを示します。プロセスの手順、および各手順の結果については、表 4-1 を参照してください。プロセスの各手順の詳細については、それ以降の節を参照してください。

図 4-1 ポートレットとナビゲーション コントロールを追加する開発の概要

ポートレットとナビゲーション コントロールを追加する開発の概要


 

表 4-1 モデル MBean の開発タスクと結果

手順

説明

結果

1. ポートレットの定義

ポータル フレームワークでインスタンス化できるポートレットを定義するための XML ファイルを作成する。ポートレットの定義には、どの種類のデータ (JSP、HTML ファイル、Struts アクション、または Beehive ページ フロー) をロードするかを示す指示が含まれる。

ポータルのルック アンド フィールによって、ポートレットが枠線や最小化/最大化コントロールを提供するかどうかが決まる。

.portlet XML ファイル。

2.UI コントロールの定義 (省略可能)

ContentBook 内のタブ、サブタブ、またはその他の場所にポートレットを表示する場合は、ページまたはブックを定義する XML ファイルを作成する。

.pinc XML ファイル。

3. ドメイン構造ポートレットへのノードの追加 (省略可能)

NavTreePortlet から拡張内のブックやページへのリンクを作成できる。

WebLogic Server のデフォルトでは、既存のナビゲーション ツリーの末尾にコントロール名を追加できるようになっている。特定の場所にノードを挿入する場合や、ノード ツリーを作成する場合は、ノードおよびノードの場所を記述する Java クラスを独自に作成する。

.pinc XML ファイルへの追加エントリ。

場合によって、追加したノードをより詳細に制御する Java クラス。

4. ポートレットや UI コントロールの表示位置の指定

ポータルを、ラベル付き UI コントロールの横に表示するか、コントロールを置換して表示するかを記述する XML ファイルを作成する。

netuix-extension.xml ファイル。

5. 拡張のアーカイブとデプロイメント

拡張ファイルを標準の Web アプリケーション ディレクトリ構造に整理する。このディレクトリ ツリーを JAR ファイルにアーカイブし、ドメインの console-ext ディレクトリにコピーする。

自動でデプロイされる JAR ファイル。

 


ポートレットの定義

ポートレットを定義する .portlet XML ファイルを作成するには、次の手順に従います。

  1. 開発する Administration Console 拡張のルートとなる開発用のディレクトリを作成します。拡張内のすべてのポートレット XML ファイルを格納するサブディレクトリを作成することをお勧めします。たとえば、dev-dir/PortalConfig を作成します。
    dev-dir は開発用のディレクトリです。
  2. 以降の節では、この開発用のディレクトリに、他のファイルやディレクトリを追加していきます。詳細については、「拡張のアーカイブとデプロイメント」を参照してください。

  3. dev-dir/portlets または dev-dir 内の他のディレクトリに新しいテキスト ファイルを作成し、コード リスト 4-1 のコードをコピーして貼り付けます。
  4. 次の命名規約を使用することをお勧めします。
    content-name.portlet

    content-name は、ポートレットに格納する JSP または HTML ファイルの名前です。たとえば、ポートレットに monitorEJB.jsp という名前の JSP ファイルを格納する場合は、ポートレット XML ファイルの名前を monitorEJB.portlet にします。

  5. コード リスト 4-1 内の以下の値を変更します。
  6. ポートレット XML ファイルの詳細については、『Portal Support Schema Reference』を参照してください。

コード リスト 4-1 単純な .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:content>
         <netuix:jspContent contentUri="URI"/>
      </netuix:content>
   </netuix:portlet>
</portal:root>

 


UI コントロールの定義 (省略可能)

ContentBook は、ブックとページの階層構造で構成します。ContentBook 内のすべてのポートレットはブックまたはページ内に表示されるため、ContentBook にポートレットを追加する場合は既存の階層構造に準拠したブックまたはページを作成する必要があります。

ブックおよびページの定義を、1 つまたは複数のポータル インクルード (.pinc) ファイルに保存します。コントロールの階層グループごとに 1 つの .pinc ファイルを作成します。たとえば、最上位のタブとそのサブタブを作成するブック用に 1 つの .pinc ファイルを作成します。また、既存の WebLogic Server タブにサブタブを追加するページ用にも別の .pinc ファイルを作成します。.pinc ファイルのルート要素 (portal:root) には、直接の子要素を 1 つのみ持たせることができます。その子要素には、複数の子を持たせることができます。

以下の節では、ブックやページの作成について説明します。

サブタブを含む最上位タブの作成

最上位タブと 1 つのサブタブを定義するポータル インクルード (.pinc) XML ファイルを作成するには、次の手順に従います。

  1. コード リスト 4-2 をコピーして、新しいテキスト ファイルに貼り付けます。そのファイルを、dev-dir の下にあるディレクトリに保存します。
  2. たとえば、dev-dir/PortalConfig/MyApp.pinc というファイルを作成します。
    dev-dir は開発用のディレクトリです。詳細については、「拡張のアーカイブとデプロイメント」を参照してください。

  3. コード リスト 4-2 内の以下の値を変更します。
  4. サブタブを追加で作成するには、コード リスト 4-2netuix:page 要素の兄弟として別の netuix:page 要素を追加します。

ポータル インクルード XML ファイルの詳細については、『Portal Support Schema Reference』を参照してください。

この .pinc ファイルでは、以下の要素も使用しています。

コード リスト 4-2 サブタブを含む最上位タブを定義する .pinc ファイルのテンプレート

<?xml version="1.0" encoding="UTF-8"?>
<portal:root
   xmlns:netuix="http://www.bea.com/servers/netuix/xsd/controls/netuix/1.0.0"
   xmlns:html="http://www.w3.org/1999/xhtml-netuix-modified/1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:portal="http://www.bea.com/servers/netuix/xsd/portal/support/1.0.0"
   xsi:schemaLocation="http://www.bea.com/servers/netuix/xsd/portal/support
      /1.0.0 portal-support-1_0_0.xsd">
   <netuix:book markupName="book" markupType="Book"
      definitionLabel="Book-Label" title="Book-Title">
      <netuix:singleLevelMenu markupType="Menu" markupName="singleLevelMenu"
         skeletonUri="singlelevelmenu_children.jsp"/>
      <netuix:meta name="skeleton-resource-bundle" content="Bundle"/>
      <netuix:content>
         <netuix:page markupName="page" markupType="Page"
            definitionLabel="Page-Label" title="Page-Title"
            skeletonUri="/framework/skeletons/default/wlsworkspace/
               page_content.jsp">
            <netuix:meta name="Metadata-Type" content="Metadata-ID"/>
            <netuix:meta name="breadcrumb-context" content="handle"/>
            <netuix:meta name="skeleton-resource-bundle" content="Bundle"/>
            <netuix:content>
               <netuix:gridLayout columns="1" markupType="Layout"
                  markupName="singleColumnLayout">
                  <netuix:placeholder flow="vertical" markupType="Placeholder"
                     markupName="singleColumn_columnOne">
                     <netuix:portletInstance markupType="Portlet"
                        title="Portlet-Instance-Title"
                        instanceLabel="Portlet-Instance-Label"
                        contentUri="Portlet-URI"/>
                  </netuix:placeholder>
               </netuix:gridLayout>
            </netuix:content>
         </netuix:page>
         <!-- Add additional netuix:page elements here -->
      </netuix:content>
   </netuix:book>
</portal:root>

サブタブを含まない最上位タブの作成

サブタブのない最上位タブ (たとえば [ドメイン : メモ]) を定義するポータル インクルード (.pinc) XML ファイルを作成するには、次の手順に従います。

  1. コード リスト 4-3 をコピーして、新しいテキスト ファイルに貼り付けます。
  2. たとえば、dev-dir/PortalConfig/MyApp.pinc というファイルを作成します。
    dev-dir は開発用のディレクトリです。詳細については、「拡張のアーカイブとデプロイメント」を参照してください。

  3. コード リスト 4-3 内の以下の値を変更します。

コード リスト 4-3 では、ブックではなくページを定義している点に留意します。こうすることで、Administration Console のルック アンド フィールによって、ページがサブタブのないタブとして表示されます。

コード リスト 4-3 サブタブのない最上位タブを作成する .pinc ファイルのテンプレート

<?xml version="1.0" encoding="UTF-8"?>
<portal:root
   xmlns:netuix="http://www.bea.com/servers/netuix/xsd/controls/netuix/1.0.0"
   xmlns:html="http://www.w3.org/1999/xhtml-netuix-modified/1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:portal="http://www.bea.com/servers/netuix/xsd/portal/support/1.0.0"
   xsi:schemaLocation="http://www.bea.com/servers/netuix/xsd/portal/support
      /1.0.0 portal-support-1_0_0.xsd">
   <netuix:page markupName="page" markupType="Page"
      definitionLabel="Page-Label" title="Page-Title"
      skeletonUri="/framework/skeletons/default/wlsworkspace/
         page_content.jsp">
         <netuix:meta name="skeleton-resource-bundle" content="Bundle"/>
         <netuix:content>
            <netuix:gridLayout columns="1" markupType="Layout"
               markupName="singleColumnLayout">
            <netuix:placeholder flow="vertical" markupType="Placeholder"
               markupName="singleColumn_columnOne">
               <netuix:portletInstance markupType="Portlet"
                  title="Portlet-Instance-Title"
                  instanceLabel="Portlet-Instance-Label"
                  contentUri="Portlet-URI"/>
            </netuix:placeholder>
         </netuix:gridLayout>
      </netuix:content>
   </netuix:page>
</portal:root>

WebLogic Server の最上位タブ内のサブタブの作成

既存の WebLogic Server タブにサブタブを追加する場合も コード リスト 4-3 のコードを使用します。

コントロールを指定する場所によって、最上位タブとして表示されるか、サブタブとして表示されるかが決まります。たとえば、コントロールが DomainConfigGeneralPage ブックの子になるように指定すると、そのコントロールは [ドメイン : コンフィグレーション] タブのサブタブとして表示されます。コントロールが CoreDomainConfigGeneralBook ブックの子になるように指定すると、そのコントロールは [ドメイン : コンフィグレーション] タブの兄弟の最上位タブとして表示されます。

ポートレットや UI コントロールの表示位置の指定」を参照してください。

タブやサブタブのないコントロールの作成

ContentBook 内のブックやページは、必ずしもタブやサブタブでアクセスできるようにする必要はありません。要約テーブルを表示する多くの WebLogic Server ページは、NavTreePortlet からアクセスすることはできますが、タブ付きインタフェースからはアクセスできません (図 2-4 を参照してください)。

これまでの節のすべてのコード リストは、子にアクセスするためのタブやサブタブを表示しない親コントロール内にも挿入できます。「ポートレットや UI コントロールの表示位置の指定」を参照してください。

カスタム セキュリティ プロバイダ ページへのナビゲーション

カスタム セキュリティ プロバイダを作成し、プロバイダを管理する MBean を WebLogic MBeanMaker を使用して作成した場合、Administration Console ではそのプロバイダのコンフィグレーション データを表示するページが自動的に生成されます。また、[セキュリティ : プロバイダ] テーブルからそのプロバイダ ページへのリンクも生成されます。

しかし、独自のページを作成してこの表示をカスタマイズすることもできます。独自のページを作成した場合は、[セキュリティ : プロバイダ] テーブルからのリンク先を、Administration Console によって自動生成されたページからカスタム ページに変更する必要があります。

リンク先を変更するには、作成したページの <netuix:page> 要素の子として次の要素を含めます。

<netuix:meta type="configuration" content="MBean-class-name"/>

MBean-class-name は、作成したプロバイダの MBean クラスの完全修飾名です。

次に例を示します。

<netuix:page markupName="page" markupType="Page"
   definitionLabel="SimpleSampleAuthorizerAuthorizerConfigCommonTabPage"
   title="tab.common.label"
   skeletonUri="/framework/skeletons/default/wlsworkspace
      /page_content.jsp">
   
<netuix:meta name="configuration"
   content="examples.security.providers.authorization.simple.
      SimpleSampleAuthorizerMBean"/>
   <netuix:content>
...

 


ドメイン構造ポートレットへのノードの追加 (省略可能)

[ドメイン構造] というタイトルのポートレット (NavTreePortlet) から、拡張内のブックやページへのリンクを作成できます。以下の節では、NavTreePortlet へのノードの追加について説明します。

単一のノードの追加

作成したブック コントロールやページ コントロールにリンクするノードを追加するには、<netuix:book> または <netuix:page> 要素に次の属性および属性値を追加します。
backingFile="com.bea.console.utils.NavTreeExtensionBacking"

次に例を示します。

<netuix:book definitionLabel="MyAppTableBook" title="MyApp.title"
   markupName="book"
   markupType="Book"
   backingFile="com.bea.console.utils.NavTreeExtensionBacking"
>

NavTreePortlet により、そのブックまたはページ要素の title 属性の値がリンク テキストとして表示されます。title 属性の値をメッセージ バンドルのキーにした場合は、そのキーにマッピングされたローカライズ済みの値が表示されます。

この backingFile 属性と属性値を拡張内の複数のコントロールに対して指定した場合は、それらのコントロールが NetUI 拡張ファイルで宣言されている順番に従って各ノード エントリが追加されます。

複数のノードやノードツリーの追加または挿入

NavTreePortlet に追加するノードの位置を制御する場合や、他のノードを含むノード (ノード ツリー) を追加する場合は、次の手順に従います。

  1. NavTreeBacking Java クラスを作成します。
  2. このクラスは、1 つまたは複数のノードを定義して、ノードの位置を指定します。「NavTreeBacking クラスの作成」を参照してください。

  3. ポータル インクルード (.pinc) ファイルの <netuix:book> または <netuix:page> 要素に、次の属性および属性値を追加します。
    backingFile="your-NavTreeBacking-class"
  4. your-NavTreeBacking-class は、手順 1 で作成したクラスの完全修飾名です。

    NavTreeBacking Java クラスでノード ツリーを作成する場合は、ノード ツリーの最上位のコントロールに backingFile 属性を追加します。たとえば、あるブックとそのページにノード ツリーを追加する場合は、<netuix:book> 要素に backingFile 属性を追加します。

NavTreeBacking クラスの作成

ノードを定義する Java クラスを作成する場合は、com.bea.console.utils.NavTreeExtensionBacking を拡張する必要があります。このクラスは、あらかじめ WebLogic Server 実行時環境で利用できる状態になっています。ただし、開発とコンパイルの環境をサポートするためには、以下の JAR を環境のクラスパスに追加する必要があります。
WL_HOME/server/lib/consoleapp/webapp/WEB-INF/lib/console.jar
WL_HOME/server/lib/consoleapp/webapp/WEB-INF/lib/netuix_servlet.jar

WL_HOME は、WebLogic Server のインストール先ディレクトリです。

NavTreeBacking クラスを作成するには、次の手順に従います (コード リスト 4-4 を参照してください)。

  1. com.bea.console.utils.NavTreeExtensionBacking を拡張します。
  2. NavTreeExtensionBacking.getTreeExtension(
    PageBackingContext ppCtx, String extensionUrl)
    メソッドをオーバーライドします。
  3. ポータル フレームワークは、backingFile="your-NavTreeBacking-class" 属性を含むコントロールをロードする際に、ppCtx および extensionUrl パラメータの値を NavTreeBacking クラスに渡します。

    PageBackingContext は、ポータル フレームワーク内のクラスで、ポータル コントロールに関するデータと、データを取得するためのメソッドを保持します。たとえば、コントロールの definitionLabel の値を保持できます。渡された ppCtx インスタンスは、getTreeExtension() メソッドを呼び出したコントロールを記述します。『WebLogic Portal 8.1.4 API Reference』の com.bea.netuix.servlets.controls.page.PageBackingContext を参照してください。

    extensionUrl の値は、getTreeExtension() メソッドを呼び出したコントロールの URL です。

    getTreeExtension() の実装で以下を行います。

    1. 追加するノードの com.bea.jsptools.tree.TreeNode オブジェクトを作成します。
    2. 親ノード (または子を含まないノード) では、次のコンストラクタを使用します。
      TreeNode(String nodeId, String nodeName, String nodeUrl)

      nodeId は、コントロールの definitionLabel の値です。メソッドにパラメータとして渡された PageBackingContext インスタンスのこの値は、PageBackingContext.getDefinitionLabel() を使用して取得できます。代わりに、コントロールの .pinc ファイル内の definitionLabel の値を入力することもできます。

      nodeName は、NavTreePortlet に表示するテキストです。

      nodeURL は、そのコントロールの URL です。このパラメータの値として extensionUrl を指定します。

    3. ノードのツリーを追加する場合は、別の TreeNode オブジェクトを最上位の TreeNode の子として作成します。
    4. 各子ノードで、次のコンストラクタを使用します。
      TreeNode(String nodeId, String nodeName,
         String
      nodeUrl, TreeNode parent)

      nodeId は、コントロールの definitionLabel の値です。PageBackingContext.getDefinitionLabel() を使用してこの値を取得することはできません。これは、このメソッドで使用できる PageBackingContext が親ノード用であるためです。代わりに、コントロールの .pinc ファイル内の definitionLabel の値を入力する必要があります。

      nodeName は、NavTreePortlet に表示するテキストです。

      nodeURL は、そのコントロールの URL です。次の値を指定します。
      ?_nfpb=true&_pageLabel=definitionLabel
      definitionLabel は、リンク先となるページまたはブックの definitionLabel です。

      parent には、作成した TreeNode のいずれかを指定します。ノード ツリーに複数のレベルを作成するには、階層内でより上位にあるノードの子を親として指定します。

    5. TreeNode オブジェクトを com.bea.console.utils.NavTreeExtensionEvent のコンストラクタに渡します。
    6. このイベントは、NavTreePortlet 内のリスナにブロードキャストされます。

      次のコンストラクタを使用します。
      NavTreeExtensionEvent(String pageLabel, String url,
         String
      parentPath, TreeNode node, int ACTION)

      pageLabel は、親ノードの TreeNode オブジェクトを作成したときに使用した nodeID と同じ値です。

      url は、親ノードの TreeNode オブジェクトを作成したときに使用した nodeURL と同じ値です。

      parentPath は、ノードに表示するノードの名前です。NavTreePortlet のナビゲーション ツリーのルートを表すには / (スラッシュ) を使用します。

      たとえば、ノードまたはノード ツリーを最上位に表示する場合は / を指定します。ノードを [環境] の子として表示する場合は、/Environments を指定します。

      node は、手順 1 で作成した親 TreeNode です。

      ACTION は、NavTreeExtensionEvent.APPEND_ACTION です。使用できるその他のアクションについては、『WebLogic Portal 8.1.4 API Reference』の「NavTreeExtensionEvent」を参照してください。

    7. 作成した NavTreeExtensionEvent オブジェクトを返します。
  4. コンパイルしたクラスを、拡張の WEB-INF/classes ディレクトリ内のパッケージ構造に保存します。

コード リスト 4-4 NavTreeExtensionBacking クラスのサンプル

package com.mycompany.consoleext;
import com.bea.netuix.servlets.controls.page.PageBackingContext;
import com.bea.jsptools.tree.TreeNode;
import com.bea.console.utils.NavTreeExtensionBacking;
import com.bea.console.utils.NavTreeExtensionEvent;
public class CustomNavTreeExtension extends NavTreeExtensionBacking {
   public NavTreeExtensionEvent getTreeExtension(PageBackingContext ppCtx,
      String extensionUrl){
     /*
      * このメソッドを呼び出したコントロールの TreeNode を作成する
      */
      TreeNode node = new TreeNode(ppCtx.getDefinitionLabel(),
         ppCtx.getDefinitionLabel(),extensionUrl);
     /*
      * 子 TreeNode を作成する
      */
      TreeNode node1 = new TreeNode("MyAppGeneralTabPage",
         "MyApp General",
         "?_nfpb=true&_pageLabel=MyAppGeneralTabPage",node);
     /*
      * 親ノード (その子ノードを含む) を NavTreePortlet の
      * Environment ノードの下に追加する
      */
      NavTreeExtensionEvent evt =
        new NavTreeExtensionEvent(ppCtx.getDefinitionLabel(),extensionUrl,
        "/Environment",node, NavTreeExtensionEvent.APPEND_ACTION);
      return evt;
   }
}

 


ポートレットや UI コントロールの表示位置の指定

ポートレットや UI コントロールを表示するすべての位置は、Administration Console 内の既存のコントロールに対する相対パスで指定する必要があります。たとえば、作成したポートレットが [システム状態] ポートレットの下のデスクトップに表示されるように指定できます。

以下の節では、ポートレットや UI コントロールの位置を指定する方法について説明します。

UI コントロール ラベルを表示するための開発ルック アンド フィールのデプロイメント

Administration Console のほとんどの UI コントロールは definitionLabel で特定でき、この値を使用して UI コントロールの相対位置を指定します。WebLogic Server には、Administration Console のユーザ インタフェースにこのラベルを表示するためのルック アンド フィールが用意されています。

注意 : ポートレットをデスクトップ上にしか追加しない場合は、この開発ルック アンド フィールをデプロイする必要はありません。

このルック アンド フィールを使用するには、次の手順に従います。

  1. dev2dev Web サイトのコード ライブラリからルック アンド フィールのアーカイブをダウンロードします。
  2. ルック アンド フィールのアーカイブ (devlaf-1.0.jar) を domain-root/console-ext に保存します。
    domain-root は、使用している開発環境のドメインのルート ディレクトリです。
  3. ドメインの管理サーバを再起動します。
  4. Administration Console にログインします。

各ラベル付きコントロールのタイトルの横に、definitionLabel の値が角括弧 ([ ]) に囲まれて表示されます。別の角括弧の中には、そのコントロールがブックであるかページであるかが表示されます。図 4-2 を参照してください。

図 4-2 Administration Console のユーザ インタフェースに表示されるコントロール ラベル

Administration Console のユーザ インタフェースに表示されるコントロール ラベル


 

NetUI 拡張 XML ファイルの作成

NetUI 拡張 XML ファイル (netuix-extension.xml) は、拡張のデプロイメント記述子です。このファイルで、拡張内の各親 UI コントロールと、それを表示する位置を宣言します。詳細については、『NetUI Extensions Schema Reference』を参照してください。

NetUI 拡張 XML ファイルを作成するには、次の手順に従います (コード リスト 4-5 を参照してください)。

  1. netuix-extension.xml という名前の XML ファイルを作成し、次のディレクトリに保存します。
    dev-dir/WEB-INF
    dev-dir は開発用のディレクトリです。詳細については、「拡張のアーカイブとデプロイメント」を参照してください。
  2. <weblogic-portal-extension> ルート要素を作成します。
  3. (省略可能) 拡張について説明する <provider-info> 要素を作成します。
  4. この要素は、あくまで拡張の内容を説明するためのものです。ポータル フレームワークでこの要素内のデータが使用されることはありません。

  5. 次の要素を追加します。
    <portal-file>/console.portal</portal-file>
  6. この必須要素では、Administration Console の .portal ファイル (現在拡張しているポータル) の名前と相対位置を指定します。

  7. Administration Console のデスクトップにポートレットを追加するには、次のスタンザを作成します。
  8. <page-extension>
       <page-location>
          <parent-label-location label="page"/>
          <page-insertion-point layout-location="0"
             placeholder-position="0"/>
       </page-location>
       <portlet-content
          content-uri="
    portlet-URI" title="title"
          orientation="top" default-minimized="false"
          instance-label="
    portlet-instance-label"/>
    </page-extension>

    各値の説明は次のとおりです。

    layout-location および placeholder-position 属性の値を変更すると、ポートレットの位置を変更できます。詳細については、『NetUI Extensions Schema Reference』を参照してください。

  9. タブを表示するコントロールを追加するには、次のスタンザを作成します。
  10. <book-extension>
       <book-location>
          <parent-label-location label="
    Admin-Console-Book-Label"/>
          <book-insertion-point action="append"/>
       </book-location>
       <book-content content-uri="
    pinc-URI"/>
    </book-extension>

    各値の説明は次のとおりです。

  11. 既存のタブにサブタブを表示するコントロールを追加するには、前の手順と同じスタンザを作成し、次の値を指定します。
  12. このファイルを、dev-dir/WEB-INF/netuix-extension.xml として保存します。dev-dir は拡張のルート ディレクトリです。

コード リスト 4-5 netuix-extension.xml ファイルのサンプル

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-portal-extension
   xmlns="http://www.bea.com/servers/portal/weblogic-portal/8.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.bea.com/servers/portal/weblogic-portal/
      8.0 netuix-extension-1_0_0.xsd">
   <provider-info>
      <title>My Extension</title>
      <version>1.0</version>
      <description>Inserts a portlet on the desktop, a tab next to
           Domains:Configuration, and a subtab under Domains: Configuration.
      </description>
      <author>Me</author>
      <last-modified>02/03/2005</last-modified>
      <support-url>http://www.mycompany/support/index.jsp</support-url>
   </provider-info>
   <portal-file>/console.portal</portal-file>
   <!--コンソールのデスクトップにポートレットを追加する -->
   <page-extension>
      <page-location>
         <parent-label-location label="page"/>
         <page-insertion-point layout-location="0" placeholder-position="0"/>
      </page-location>
      <portlet-content content-uri="/portlets/desktop/desktop_view.portlet"
         title="My App Status" orientation="top" default-minimized="false"
          instance-label="PortletExtensionInstanceLabel"
      />
   </page-extension>
   <!--[ドメイン] タブにタブを追加する -->
   <book-extension>
      <book-location>
         <parent-label-location label="CoreDomainConfigGeneralBook"/>
         <book-insertion-point action="append"/>
      </book-location>
      <book-content content-uri="/page/page.pinc"/>
   </book-extension>
<!-- [ドメイン : コンフィグレーション] タブにサブタブを追加する-->
   <book-extension>
      <book-location>
         <parent-label-location label="DomainconfigTabPage"/>
         <book-insertion-point action="append"/>
      </book-location>
      <page-content content-uri="/page/notespage.pinc"/>
   </book-extension>
</weblogic-portal-extension>

 


拡張のアーカイブとデプロイメント

拡張をアーカイブしてデプロイするには、次の手順に従います。

  1. XML ファイル、JSP、Java クラスを、Web アプリケーションの要件を満たすディレクトリ ツリーに整理します。
  2. たとえば、拡張のデプロイメント記述子 netuix-extension.xml ファイルは、次のディレクトリに格納する必要があります。
    root-dir/WEB-INF

    NavTreePortlet にノードを追加する Java クラスを使用している場合は、そのパッケージ構造を次のディレクトリから始める必要があります。
    root-dir/WEB-INF/classes

    メッセージ バンドルを使用している場合は、そのプロパティ ファイルを次のディレクトリに格納する必要があります。
    root-dir/WEB-INF/classes

    その他のすべてのリソースはどのようなディレクトリ構造にしても構いませんが、拡張のルート ディレクトリの下に格納し、netuix-extension.xml ファイルおよびその他の XML ファイルからの相対リンクを正しく指定する必要があります。

  3. 拡張ディレクトリを JAR ファイルにアーカイブします。JAR ファイルの名前は、プログラム的には重要ではありません。分かりやすい名前を付けてください。
  4. root-dir ディレクトリのコンテンツをアーカイブのルートにする必要があります。root-dir ディレクトリの名前自体がアーカイブに含まれないようにしてください。Java の jar コマンドを使用してアーカイブを作成する場合は、root-dir ディレクトリからコマンドを入力します。次に例を示します。
    c:\root-dir\> jar -cf my-extension.jar *

  5. JAR ファイルを各ドメインの domain-dir/console-ext ディレクトリにコピーします。domain-dir はドメインのルート ディレクトリです。
  6. 各ドメインの管理サーバを再起動します。

デプロイメント中のエラーの出力

Administration Console でデプロイメント エラーが発生すると、標準出力と管理サーバのサーバ ログ ファイルにエラーおよび警告メッセージが出力されます。

エラーまたは警告メッセージが出力されていないのに拡張が Administration Console に表示されない場合は、netuix-extension.xml ファイルで間違った親 UI コントロールを指定した可能性があります。たとえば、子にアクセスするためのタブを表示しない親 UI コントロールを指定した場合、拡張はデプロイされますが、それにアクセスするためのメニュー コントロールが存在しないことになります。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次