BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Portal > 開発者ガイド > ポータル コンテンツ管理 |
開発者ガイド
|
ポータル コンテンツ管理
どのようなポータルであれ、重要なのはそのコンテンツです。 WebLogic Portal では、コンテンツ マネージャを用いてコンテンツを提供します。 コンテンツ マネージャには、パーソナライゼーション サービスでユーザに動的な Web コンテンツを提供するためのコンテンツおよびドキュメント管理機能が用意されています。 コンテンツ マネージャが扱うのは、サードパーティ ベンダ製ツールで管理されるファイルやコンテンツです。 ポータル リソースの開発時には、利用できる最も適切なコンテンツにユーザがアクセスできるように、コンテンツ マネージャのコンフィグレーションを行い、さまざまなコンテンツ関連タグを使用する必要があります。
この章では、以下のトピックを扱います。
Bulk Loader を用いたコンテンツの追加
ポータルにコンテンツを追加する最も簡単な方法は、製品に付属しているバルク ローダ スクリプトを使用することです。 この方法を実行するには、以下の手順に従います。
このロード スクリプトは以下の場所にあります。
<BEA_HOME>¥weblogic700¥samples¥portal¥<DOMAIN_NAME>¥
これらのスクリプトを実行するには、コマンド ライン(または、Windows NT/2000 では[スタート|ファイル名を指定して実行] )でそれらを入力するか、 あるいは、Windows エクスプローラを開き、実行したいスクリプトを見つけ、ファイル リスト内でそれをダブルクリックします。 コマンド ラインから BulkLoader を実行する場合には、表8-1 に示した任意のコマンドライン スイッチを使用することもできます。
この方法がうまくいくためには、BulkLoader でサポートされている以下の 3 通りの方法のいずれかで、CMS がドキュメントのメタデータをパブリッシュ(公開)できなければなりません。
BulkLoader のパフォーマンス向上のヒント
以下の推奨事項に従えば、BulkLoader のパフォーマンスが向上します。
キャッシュをクリーンアップする
ページへの細かい更新を多数行った場合には、BulkLoader を実行する前に、キャッシュをクリーンアップしたほうがよいでしょう。 Administration Console の [Cache Manager] ノードの [管理] タブで、図 8-1に示すように [キャッシュ全体をフラッシュするか] を選択し、[フラッシュ] をクリックします。
図8-1 キャッシュのフラッシュ
Connection Pool を再起動する
E-Business Control Center を用いて新しいメタデータ プロパティを追加してある場合には、Connection Pool を再起動する必要があります。 それには、以下を実行します。
[<yourDomain>|デプロイメント|アプリケーション|<yourPortal>|Service Configuration|Document Connection Pool Service|default]
コンテンツ マネージャのコンフィグレーション
サードパーティ製のコンテンツ管理システムを利用してポータルにコンテンツを供給する場合には、そのコンテンツ管理システムを、WebLogic Portal と連携するようにコンフィグレーションする必要があります。 この節では、必要なコンフィグレーション手順について説明します。
コンテンツ マネージャは、タグと EJB を通じてコンテンツにアクセスできるようにする実行時サブシステムです。 JSP を開発する際には、コンテンツ管理タグを使用すれば、検索式構文を用いてコンテンツ データベースに直接クエリを発行することでコンテンツ オブジェクトの一覧を取得できます。 コンテンツ マネージャ コンポーネントは、その他のコンポーネントと連携して、パーソナライズされたコンテンツを配信しますが、編集時カスタマイズに使用できる GUI ベースのツールは備えていません。
以下の節では、コテンツ マネージャのコンフィグレーションに必要な作業について説明します。 以下のトピックを扱います。
DocumentManager EJB デプロイメント記述子をコンフィグレーションする
DocumentManager EJB デプロイメント記述子は、コンテンツ管理コンポーネントのコンフィグレーションの EJB 部分を扱うもので、正しい環境設定を認識するようにコンフィグレーションする必要があります。 DocumentManager EJB をコンフィグレーションするには、そのデプロイメント記述子に必ず、以下の環境設定が記載されていなければなりません。
jdbc/docPool がデプロイメント記述子に指定されている場合には、
注意: lower と upper のどちらにするかは、使用するドキュメント接続プール実装によって決まります。 ドキュメント参照実装の場合には、PropertyCase を指定してはいけない。
PropertySetManager EJB デプロイメント記述子をコンテンツ管理用にコンフィグレーションする
コンテンツ プロパティ セットがシステムにエクスポーズされるように、DocumentManager を PropertySetManager EJB デプロイメント記述子に統合する必要があります。 PropertySetManager EJB デプロイメント記述子をコンテンツ管理用にコンフィグレーションするには、以下の環境設定を追加します。
ContentManager または DocumentManager と PropertySetManager を統合するには、ここに EJB 参照を 1 つ追加します。 たとえば、 ejb/ContentManagers/Document は標準の DocumentManager にマップされます。
あるいは、DocumentManager MBean の JNDIName 属性を DocumentManager の JNDI ホーム名に設定することもできます。 その値では ${APPNAME} 構文要素を使用することができ、それは現在の J2EE アプリケーション名に置き換えられます。 com.bea.p13n.content.PropertySetRepositoryImpl では、それらの DocumentManager を自動的に見つけるので、J2EE EJB 参照は必要ありません。
DocumentManager MBean をコンフィグレーションする
DocumentManager 実装では、DocumentManager MBean を用いて、そのコンフィグレーションの保守を行います。 デプロイされた DocumentManager は、どの DocumentManager MBean を使用すべきかを DocumentManagerMBeanName EJB のデプロイメント記述子設定から知ることができます。 それらの値が DocumentManagerMBeanName EJB デプロイメント記述子内の Name 属性に一致するように、アプリケーション内の DocumentManager MBean をコンフィグレーションする必要があります。
DocumentManager MBean をコンフィグレーションするには、アプリケーションの META-INF/application-config.xml ファイルを修正して、 以下の XML(リスト 8-1 に示す) に追加または変更することができます。
コード リスト 8-1 アプリケーションの META-INF/application-config.xml ファイル内の <DocumentManager> 要素の修正
<DocumentManager
Name="default"
DocumentConnectionPoolName="default"
PropertyCase="none"
MetadataCaching="true"
MetadataCacheName="documentMetadataCache"
UserIdInCacheKey="false"
ContentCaching="true"
ContentCacheName="documentContentCache"
MaxCachedContentSize="32768"
>
</DocumentManager>
application-config.xml ファイル内で直接これらの属性を変更しようとしてはいけません。 その代わり、WebLogic Server Administration Console を用いて DocumentManager MBean を修正する で説明しているように、WebLogic Server Administration Console を使用します。
WebLogic Server Administration Console を用いて DocumentManager MBean を修正する
WebLogic Server Administration Console を用いて DocumentManager MBeans を修正するには、以下の手順に従います。
http://<hostname>:<port>/console
図8-3 WebLogic Server Administration Console
MBean を無効にする
WebLogic Server Administration Console から MBean を有効または無効にすることができます。 それには、以下の手順に従います。
注意: この手順では、WebLogic Server に接続済みで Administartion Console が開かれていることを前提としています。そのための手順は、WebLogic Server Administration Console を用いて DocumentManager MBean を修正するの節で説明したとおりです。
図8-6 [ Add or remove service configurations] ノードの選択
図8-8 MBean の選択解除を行った [ Service Configuration ] 画面
無効にした MBean を再度有効にする
上記の手順で無効にした MBean を再度有効にするには、該当するチェックボックスをクリックして選択します。 必要な MBean をすべて元どおり選択したら、やはり、[Submit] をクリックします。
ドキュメント接続プールをセットアップする
DocumentManager 実装では、専用の JDBC ドライバへの接続プールを使用して、コンテンツに関する検索を処理します。 デプロイ済みの DocumentManager では、使用するドキュメント接続プールを、自分の DocumentManager MBean の DocumentConnectionPoolName 属性か DocumentConnectionPoolName EJB デプロイメント記述子設定のいずれかを用いて見つけます。 その値は、DocumentConnectionPool MBean に一致する必要があります。
DocumentConnectionPool MBean をコンフィグレーションするには、以下の XML(リスト 8-2 に示す)に追加または変更することで、アプリケーションの META-INF/application-config.xml ファイルを修正します。
コード リスト 8-2 アプリケーションの META-INF/application-config.xml ファイルの修正による DocumentConnectionPool MBean のコンフィグレーション
<DocumentConnectionPool
Name="default"DriverName="com.bea.p13n.content.document. jdbc.Driver"URL="jdbc:beasys:docmgmt:com.bea.p13n.content
document.ref.RefDocumentProvider"
Properties="jdbc.dataSource=weblogic.jdbc.pool.commercePool;
schemaXML=D:/bea/user_projects/myNEWdomain/dmsBase/
doc-schemas;docBase=D:/bea/user_projects/myNEWdomain/dmsBase"
InitialCapacity="20"
MaxCapacity="20"
CapacityIncrement="0"
/>
WebLogic Console で DocumentConnectionPool MBean を編集する
DocumentManager MBean の場合と同様に、DocumentConnectionPool MBean の修正には、WebLogic Server Administration Console を用いる必要があります。 その方法については、WebLogic Server Administration Console を用いて DocumentManager MBean を修正するの節で示した手順を参照してください。 なお、DocumentConnectionPool MBean の場合には、[Document Connection Pool Service] ノードを選択し、[Document Connection Pool サービス] 画面(図 8-9 に示す)で変更を行う必要があることに注意してください。
図8-9 [ Document Connection Pool サービス ] 画面
DocumentConnectionPool MBean の変更可能な属性を 表8-3 に示します。
DocumentConnectionPool MBean に設定できる有効な参照実装プロパティを表8-4 に示します。
図 8-9 に示すように、WebLogic Server Administration Console を使用すれば、DocumentConnectionPool MBean を編集して、属性値やプロパティ値を必要に応じて変更することができます。 Web アプリケーションをコンフィグレーションする コンテンツ管理サービスへのアクセスに必要な J2EE リソース(EJB、サーブレット、JSP タグ ライブラリなど)に Web アプリケーションからアクセスできるようにコンフィグレーションする必要があります。 つまり、ejb/ContentManager と ejb/DocumentManager への EJB 参照をコンフィグレーションする必要があります。 さらに、com.bea.p13n.content.servlets.ShowDocServlet を Web アプリケーションにマップしておくことが必要です。 BEA では、リスト 8-3 に示すように、Web アプリケーションの /ShowDoc/* URL にマップすることをお勧めします。 コード リスト 8-3 ShowDocServlet のマッピング これによって、Web アプリケーションのコンテキスト ルート(たとえば /wlcs/ShowDoc)下の ShowDoc/ URI を ShowDocServlet に送ることができるようになります。 初期化パラメータ contentHome(<init-param> タグ内) が上記のように設定されているので、その ShowDocServlet は常にejb/DocumentManager EJB 参照を使用するようになります。この設定を削除すれば、ShowDocServlet は任意の contentHome リクエスト パラメータに従って動作できるようになります。 コンテンツ管理タグ ライブラリを利用するには、以下を実行する必要があります。
<servlet>
<servlet-name>ShowDocServlet</servlet-name>
<servlet-class> com.bea.p13n.content.servlets.ShowDocServlet
</servlet-class> <!-- showdoc が常にローカルの ejb-ref DocumentManager を使用するように設定する -->
<init-param>
<param-name>contentHome</param-name>
<param-value>java:comp/env/ejb/DocumentManager</param-value>
</init-param></servlet>
...
<servlet-mapping>
<servlet-name>ShowDocServlet</servlet-name>
<url-pattern>/ShowDoc/*</url-pattern>
</servlet-mapping>
コンテンツ セレクタ タグおよび関連する JSP タグの使い方
コンテンツ セレクタは、コンテンツ管理システムからドキュメントを取得するためのメカニズムとして WebLogic Portal に用意されているものの 1 つです。 コンテンツ セレクタ JSP タグなどの一連の JSP タグを使用すれば、コンテンツ セレクタで絞り込まれたコンテンツを取得し表示することができます。
この節では、コンテンツ セレクタ タグとそれらに関連する JSP タグを用いてコンテンツを管理する方法を説明します。 以下のトピックスを扱います。
WebLogic Portal のコンテンツ関連 JSP タグを WebLogic Portal のコンテンツ管理サービス プロバイダ インタフェース (SPI) へマップする方法については、 http://edocs.beasys.co.jp/e-docs/wlp/docs70/jsp/p13njsp.htm にある『JavaServer Pages ガイド』の「パーソナライゼーション JSP タグ」を参照してください。
<pz:contentSelector> タグの使い方
<pz:contentSelector> セレクタ タグを用いて行えることは、以下のとおりです。
コンテンツ セレクタの定義を識別する
E-Business Control Center で作成されるコンテンツ セレクタ定義では、コンテンツ セレクタがアクティブになる条件と、アクティブなコンテンツ セレクタで実行されるクエリを決定します。
この定義を参照するには、次のように rule 属性を使用します。
<pz:contentSelector rule= { definition-name | scriptlet } >
スクリプトレットを使用すれば、付加的な基準に基づいて rule 属性の値を決定することができます。 たとえば、あるヘッダー JSP (heading.inc) でコンテンツ セレクタを使用し、その JSP を他の JSP にインクルードするとしましょう。 このとき、heading.inc をインクルードするページごとに、異なるコンテンツ セレクタを作成することができます。
heading.inc でスクリプトレットを使用して、インクルードされた JSP ファイルが現在表示されているページに応じた属性値を設定します。リスト 8-4 に、その例を示します。
コード リスト 8-4 heading.inc でのスクリプトレットの使用
String banner = (String)pageContext.getAttribute("bannerPh");
banner = (banner == null) ? "cs_top_generic" : banner;
%>
<!-- ------------------------------------------------------------- -->
<table width="100%" border="0" cellspacing="0" cellpadding="0"
height="108">
<tr><td rowspan="2" width="147" height="108">
<pz:contentSelector rule="<%= banner %>" ... />
</td>
コンテンツ管理システムの JNDI ホームを識別する
コンテンツ セレクタ タグでは、contentHome 属性を用いてコンテンツ管理システムの JNDI ホームを指定する必要があります。 参考版のコンテンツ管理システムを使用する場合や、サード パーティ製のコンテンツ管理システムと統合する場合には、スクリプトレットを用いてデフォルトのコンテンツ ホームを参照することができます。 スクリプトレットでは ContentHelper クラスを使用するので、まず、以下のタグを用いてそのクラスを JSP にインポートする必要があります。
<%@ page import="com.bea.p13n.content.ContentHelper"%>
そのあと、コンテンツ セレクタ タグを使用する際には、リスト 8-5 に示すように contentHome を指定します。
コード リスト 8-5 コンテンツ セレクタ タグでの contentHome の指定
<pz:contentSelector
contentHome="<%=ContentHelper.DEF_DOCUMENT_MANAGER_HOME %>"
... />
独自のコンテンツ管理システムを構築する場合には、ContentHelper スクリプトレットを使用するのではなく、システムの JNDI ホームを指定する必要があります。 さらに、その独自コンテンツ管理システムが JNDI ホームを提供する場合には、ContentHelper スクリプトレットを使用するのではなく、その JNDI ホームを指定することができます。
クエリ結果を格納する配列を定義する
表8-5 に示した属性を用いて、コンテンツ セレクタでのクエリの結果を格納する配列をコンフィグレーションすることができます。
キャッシュを作成およびコンフィグレーションしてパフォーマンスを向上させる 取得されたコンテンツによりアクセスしやすくなるように、また、パフォーマンスを向上させるために、コンテンツ セレクタ属性を用いて、配列の内容を格納するキャッシュを作成しコンフィグレーションすることができます。 キャッシュを使用しなければ、コンテンツ セレクタ用の配列にアクセスできるのは、そのセレクタ タグを含む JSP ページ内だけであり、しかも、その配列を作成した顧客リクエストに限られます。 さらに、コンテンツ セレクタ タグを含む JSP を顧客が要求するたびに、コンテンツ セレクタでクエリを実行しなければならず、そのため WebLogic Portal 全体のパフォーマンスが低下するおそれがあります。 配列の内容をキャッシュするには、表8-6 に挙げた属性を使用します。
コンテンツ セレクタを補助する関連タグ コンテンツ セレクタを補助する JSP タグを表8-7 に示します。
コンテンツ セレクタ タグと関連タグの使い方 コンテンツ セレクタの定義、タグ属性、および関連する JSP タグを組み合わせれば、特定のコンテキストで顧客に合うドキュメントを用意するための強力なツール セットになります。 ここでは、以下の作業例を通じて、コンテンツ セレクタとその関連タグの最も一般的な使い方を示します。
WebLogic Portal のコンテンツ関連 JSP タグを WebLogic Portal のコンテンツ管理サービス プロバイダ インタフェース (SPI) へマップする方法については、 http://edocs.beasys.co.jp/e-docs/wlp/docs70/jsp/p13njsp.htm にある『JavaServer Pages ガイド』の「パーソナライゼーション JSP タグ」を参照してください。
テキスト タイプのドキュメントを取得し表示する
テキスト タイプのドキュメントを取得し表示するには、以下の手順に従います。
注意: この手順では、E-Business Control Center で作成されたコンテンツ セレクタ クエリに、テキスト ドキュメントだけを取得するフィルタが組み込まれているものとします。
コード リスト 8-6 クラスおよびタグ ライブラリをインポートするためのコード
<%@ page import="com.bea.p13n.content.ContentHelper"%>
<%@ taglib uri="es.tld" prefix="es" %>
<%@ taglib uri="pz.tld" prefix="pz" %>
<%@ taglib uri="um.tld" prefix="um" %>
コード リスト 8-7 コンテンツ セレクタ タグの例(その 1)
コード リスト 8-8 コンテンツ タイプの確認
画像タイプのドキュメントを取得し表示する
画像タイプのドキュメントを取得し表示するには、以下の手順に従います。
コード リスト 8-9 クラスおよびタグ ライブラリがまだ JSP に組み込まれていない場合にそれらをインポートするためのコード
コード リスト 8-10 コンテンツ セレクタ タグの例(その 2)
<pz:contentSelector rule="SpringSailing"
contentHome="<%=ContentHelper.DEF_DOCUMENT_MANAGER_HOME %>"
id="ImageDocs"/>
<es:forEachInArray array="<%=ImageDocs%>" id="anImageDoc" type="com.bea.p13n.content.Content">
<img src="ShowDoc/<cm:printProperty
id="anImageDoc" name="identifier" encode="url"/>"
</es:forEachInArray>
コード リスト 8-11 スクリプトレットで囲まれた <img> タグ
<% if (anImageDoc .getMimeType().contains("image"))
{
%>
<img src="ShowDoc/<cm:printProperty
id="anImageDoc" name="identifier" encode="url"/>">
}
%>
ドキュメントのリストを取得し表示する
ドキュメントのリストを取得し表示するには、以下の手順に従います。
コード リスト 8-12 クラスおよびタグ ライブラリがまだ JSP に組み込まれていない場合にそれらをインポートするためのコード
コード リスト 8-13 コンテンツ セレクタ タグの例(その 3)
<pz:contentSelector rule="SpringSailing"
contentHome="<%=ContentHelper.DEF_DOCUMENT_MANAGER_HOME %>"
id="docs"/>
<ul>
<es:forEachInArray array="<%=docs%>" id="aDoc"
type="com.bea.p13n.content.Content">
<li>The document title is: <cm:printProperty id="aDoc"
name="Title" encode="html" />
</es:forEachInArray>
</ul>
別の JSP 上のコンテンツ セレクタ キャッシュにアクセスするには、以下の手順に従います。
コード リスト 8-14 コンテンツ セレクタ タグの属性
<pz:contentSelector rule="SpringSailing"
contentHome="<%=ContentHelper.DEF_DOCUMENT_MANAGER_HOME %>"
id="docs"
useCache="true" cacheId="SpringSailingDocs" cacheTimeout="120000"
cacheScope="application" />
これらの属性を指定することで作成されるキャッシュは、WebLogic Portal によって 2 分間(120000 ミリ秒間)保持され、Web アプリケーションの任意のページから任意のユーザによって SpringSailingDocs という名前でアクセスすることができます。 cacheScope属性の取り得る値の詳細については、キャッシュを作成およびコンフィグレーションしてパフォーマンスを向上させる を参照してください。
コード リスト 8-15 同一タグの追加
<pz:contentSelector rule="SpringSailing"
contentHome="<%=ContentHelper.DEF_DOCUMENT_MANAGER_HOME %>"
id="docs"
useCache="true" cacheId="SpringSailingDocs" cacheTimeout="120000"
cacheScope="application" />
外部コンテンツ管理システムとの統合
大量のコンテンツがあり、コンテンツの発行とタグ付けに対するもっと強力な管理機能を必要とする顧客向けに、BEA では、サードパーティ ベンダと提携して WebLogic Portal の柔軟性を高めます。 サードパーティ製のコンテンツ管理システムは堅牢なコンテンツ作成管理ソリューションを提供するのに対して、コンテンツ マネージャはコンテンツをパーソナライズしてエンド ユーザに配信します。
統合戦略
BEA では、サードパーティ製のコンテンツ管理システム (CMS) を WebLogic Portal に統合するための戦略として、以下の 3 つをお勧めします。
DocumentProvider インタフェースを実装することでコンテンツを追加する
DocumentProvider オブジェクトは、SPI 実装へのエントリ ポイントとなるものです。 これは、基礎となるコンテンツ管理システムにアクセスするメソッドから成ります。 DocumentProvider を開発する際には、トランザクション状態やスレッド セーフティ(スレッド保証)を気にかける必要はありません。 DocumentProvider では書き込みアクションを実行する必要がないので、トランザクションの中で DocumentProvider にアクセスする必要はありません。
DocumentProvider インタフェースを実装するには、com.beasys.p13n.content.document.spi パッケージに含まれている Java インタフェースの実装を作成することが必要になります。 これらのインタフェースは下記のとおりです。
以下の各節では、CMS を WebLogic Portal に統合するためのこれらのインタフェースの実装方法について説明します。
これらのインタフェースの詳細については、『Javadoc』を参照して com.beasys.p13n.content.document.spi を調べてください。
以下の手順では、DocumentProvider インタフェースの実装方法を大まかに示します。
ステップ 1: CMS が使用上の最低要件を満たしていることを確認する
コンテンツ管理システム (CMS) を WebLogic Portal にうまく統合するには、表8-8 に挙げた機能を CMS がサポートしている必要があります。
これらの要件のいずれかが何らかの形で満たされない場合には、CMS を WebLogic Portal に完全に統合することはできません。 そのうえ、WebLogic Portal にはドキュメント作成/編集機能がないので、CMS には、ユーザがドキュメントを作成および編集するための何らかの手段が用意されていなければなりません。 ステップ 2: SPI 実装を作成する 次に、表8-9 に示したインタフェースと、DefaultDocumentProviderに挙げたその他のデフォルト クラスおよびヘルパー クラスを実装することで、SPI をコーディングする必要があります。 これらのインタフェースでは、BEA オブジェクトを CMS 側で認識可能なオブジェクトに変換するので、Web アプリケーションと CMS の間の双方向通信が可能になります。
WebLogic Portal のコンテンツ関連 JSP タグを WebLogic Portal SPI へマップする方法については、 http://edocs.beasys.co.jp/e-docs/wlp/docs70/jsp/p13njsp.htm にある『JavaServer Pages ガイド』の「パーソナライゼーション JSP タグ」を参照してください。 実装すべきその他の DocumentProvider 関連クラス 表 3-1 に挙げたインタフェースの他に、SPI の一部機能を実装するための基本クラスとして、 com.bea.p13n.content.document.ref パッケージ内の抽象クラスの一部を用いることができます。 それは以下のクラスです。
DocumentProvider 実装の開発に役立つクラスには、その他に以下のものがあります。
注意: 各クラスの詳細については、WebLogic Portal の『Javadoc』を参照してください。
検索用およびスキーマ用のメソッドを実装する
一般に、サードパーティ製の CMS と統合するには、検索用のメソッドとスキーマ用のメソッドを両方とも実装する必要があります。
検索用メソッドは、ドキュメントに関するメタデータ、すなわち返されるデータの全体的イメージを特定するデータを返します。 検索が機能するには、検索オブジェクトに渡される検索条件が、CMS に用意されている検索メソッドにどう対応するかを決定したうえで、そのマッピングを定義する必要があります。
スキーマ用メソッドは、「バイト データ」、すなわち Web アプリケーションで使用されるデータを表すものを返します。 必要なデータがポーリング先の CMS に存在すると仮定すれば、これらのメソッドから返されるものは以下のとおりです。
ステップ 3: コードをアプリケーション内に配置する
SPI 実装の作成が完了したら、それを使用できるように WebLogic Portal をコンフィグレーションする必要があります。 それには、以下のいずれかを行います。
または
既存の DocumentConnectionPool を修正する
最初の方法は、アプリケーションのMETA-INF/application-config.xml に記述されている既存の DocumentConnectionPool を単に修正することです。 DocumentManager 実装では、専用 JDBC ドライバへの接続プールを用いて検索を処理します。 デプロイされた DocumentManager では、DocumentManager MBean の DocumentConnectionPoolName 属性か DocumentConnectionPoolName EJB のデプロイメント記述子設定のどちらかを参照して、使用するドキュメント接続プールを見つけます。
新しい DocumentConnectionPool と DocumentManager をコンフィグレーションする
WebLogic Portal をコンフィグレーションする 2 番目の方法は、新しい DocumentConnectionPool をアプリケーションの META-INF/application-config.xml ファイルにセットアップし、新しい DocumentManager EJB をアプリケーションにデプロイすることです。
まず、WebLogic Server Administration Console を用いて DocumentManager MBean を修正する の節で説明した手順に従って、新しい接続プールを作成します。その DocumentConnectionPool には、必ずアプリケーション内でユニークな名前(たとえば、「myConnectionPool」)を付けます。
次に、以下の手順に従って、新しい EJB を作成 します。
コード リスト 8-16 <session> エントリの新規作成
<!-- The Newsletter DocumentManager -->
<session>
<ejb-name>NewsletterDocumentManager</ejb-name>
<home>com.bea.p13n.content.document.DocumentManagerHome</home>
<remote>com.bea.p13n.content.document.DocumentManager</remote>
<ejb-class>com.bea.p13n.content.document.internal.
SPIFastDocumentManagerImpl</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<!--
これにより、このインスタンスが application-config.xml で
どの DocumentManager MBean を探すかが決まる
-->
<env-entry>
<env-entry-name>DocumentManagerMBeanName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>newsletter</env-entry-value>
</env-entry>
</session>
コード リスト 8-17 <assembly-descriptor> エントリと <container-transaction> エントリの追加
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>NewsletterDocumentManager</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
.
.
.
</assembly-descriptor>
コード リスト 8-18 <weblogic-enterprise-bean> エントリの新規作成
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>NewsletterDocumentManager</ejb-name>
<entity-descriptor>
<persistence>
<persistence-type>
<type-identifier>WebLogic_CMP_RDBMS
</type-identifier>
<type-version>7.0</type-version>
<type-storage>META-INF/weblogic-cmp-rdbms-jar.xml
</type-storage>
</persistence-type>
<persistence-use>
<type-identifier>WebLogic_CMP_RDBMS
</type-identifier>
<type-version>6.0</type-version>
</persistence-use>
</persistence>
</entity-descriptor>
<jndi-name>${APPNAME}.BEA_portal_examples.
NewsletterDocumentManage</jndi-name>
</weblogic-enterprise-bean>
<jndi-name>${APPNAME}.BEA_portal_examples.
NewsletterDocumentManage</jndi-name>
ステップ 4: .jar ファイルにアプリケーションからアクセスできるようにする
次に、CMS にアクセスするアプリケーションから、作成した .jar ファイルにアクセスできるようにする必要があります。 それには、以下のいずれかの方法を用います。
ステップ 5: サーバを再起動する
これまで、コンフィグレーションとクラスパスに数々の変更を加えてきたので、ここでサーバを再起動したほうがよいでしょう。
ステップ 6: ポータルを適用する
統合を完了するには、最後に、CMS データの表示先となるポータルを作成する必要があります。 ポータルやポートレットの作成方法については、ステップ 3: ポートレットの追加を参照してください。
参照実装にパブリッシュする
この戦略では、WebLogic Portal の参照実装データベース テーブルおよび XML スキーマ ファイルに直接パブリッシュすることが必要になります。
この戦略を実行するには、以下の手順に従います。
コンテンツ クエリの作成
この節では、コンテンツ管理システムへのクエリを作成するためのガイドラインを示します。以下のトピックを扱います。
クエリを構造化する
WebLogic Portal のクエリは、SQL 文字列構文と構文的に似ていて、基本ブール型の比較表現 (括弧でネストされたクエリを含む) をサポートしています。 概して、クエリには、メタデータ プロパティ名、比較演算子、およびリテラル値が含まれます。 たとえば、以下のように指定します。
attribute_name comparison_operator literal_value
注意: クエリ構文の詳細については、『Javadoc API マニュアル
』で com.bea.p13n.content.expression.ExpressionHelper を参照してください。この構文を用いて作成するクエリに適用される制約は、以下のとおりです。
以下に、式全体の例を示します。
例 1:
((color=`red' && size <=1024) || (keywords contains `red' && creationDate < now))
例 2:
creationDate > toDate (`MM/dd/yyyy HH:mm:ss', `2/22/2000 14:51:00') && expireDate <= now && mimetype like `text/*'
クエリ作成のための比較演算子の使い方
高度な検索をサポートするため、WebLogic Portal では、比較演算子を組み込んだネストしたブール型クエリを作成することができます。 表8-10 はメタデータ型に利用可能な比較演算子をまとめたものです。
注意: 検索パラメータと式オブジェクトでは、ビット フラグ (!) を用いた式の否定が利用できます。
参照実装コンテンツ管理システムは、単値のテキストおよび数値プロパティしか持てません。 暗黙のプロパティはすべて単値テキストです。
Java を用いたクエリの作り方
Content Management コンポーネントで用意されているクエリ言語を使う代わりに Java 構文を使ってクエリを作るには、『Javadoc API マニュアル
』で com.bea.p13n.content.expression.ExpressionHelper を参照してください。ContentManager セッション Bean は、Content Management コンポーネントの機能への主要なインタフェースです。 ContentManager インスタンスを使用すると、コンテンツは、埋め込まれた com.bea.p13n.expression.Expression (式ツリーを表す) と一緒に、com.bea.p13n.content.expression.Search オブジェクトに基づいて返されます。
ContentManager で有効な式ツリーとして使用するには、下記の注意事項に留意する必要があります。
com.bea.p13n.expression.operator.logical.LogicalAnd、com.bea.p13n.expression.operator.logical.LogicalOr、com.bea.p13n.expression.operator.logical.LogicalMulitAnd、 または com.bea.p13n.expression.operator.logical.LogicalMultiOr。
com.bea.p13n.expression.operator.comparative.Equals、com.bea.p13n.expression.operator.comparative.GreaterOrEquals、 com.bea.p13n.expression.operator.comparative.GreaterThan、com.bea.p13n.expression.operator.comparative.LessOrEquals、com.bea.p13n.expression.operator.comparative.LessThan、com.bea.p13n.expression.operator.comparative.NotEquals、com.bea.p13n.expression.operator.string.StringLike、 com.bea.p13n.expression.operator.collection.CollectionContains、 または com.bea.p13n.expression.operator.collection.CollectionsContainsAll
Document サーブレットの使い方
Content Management コンポーネントには、Document オブジェクトのコンテンツを出力する能力を備えたサーブレットがあります。 このサーブレットは、コンテンツ管理システム内に存在する画像コンテンツをストリーミングする時や、HTML リンクが選択された際にコンテンツ管理システム内に格納されているドキュメントのコンテンツをストリームする場合に役立ちます。 このサーブレットでサポートされる Request/URL パラメータを、表8-11 に示します。
サーブレットは、Document のみをサポートし、Content の他のサブクラスはサポートしません。 Content-Type は Document の mimeType に設定され、Content-Length を Document のサイズに設定され、Content-Disposition を、ブラウザからのファイル保存時に正しいファイル名を表すべく、正しく設定されます。 例 1: JSP での使い方 この例は、夕方に表示するニュース項目を検索し、 それらを箇条書きのリストにして表示します。 例 2: JSP での使い方 この例は、キーワードに「bird」が含まれている画像ファイルを検索し、その画像を箇条書きリストにして表示します。
<cm:select sortBy="creationDate ASC, title ASC"
query=" type = `News' && timeOfDay = `Evening' && mimeType like `text/*' "id="newsList"/>
<ul>
<es:forEachInArray array="<%=newsList%>" id="newsItem" type="com.bea.p13n.content.Content">
<li><a href="ShowDoc/<cm:printProperty id="newsItem"
name="identifier" encode="url"/>"><cm:printProperty
id="newsItem" name="title" encode="html"/></a> </es:forEachInArray>
</ul>
<cm:select max="5" sortBy="name" id="list"
query=" KeyWords like `*birds*' && mimeType like `image/*' "
contentHome="java:comp/env/ejb/MyDocumentManager"/>
<ul>
<es:forEachInArray array="<%=list%>" id="img" type="com.bea.p13n.content.Content">
<li><img src="/ShowDoc/<cm:printProperty id="img"
name="identifier"
encode="url"/>?contentHome=<es:convertSpecialChars
string="java:comp/env/ejb/MyDocumentManager"/>"><es:forEachInArray>
</ul>
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |