Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド 11g リリース1 (11.1.1.7.0) B72084-02 |
|
前 |
次 |
OmniPortletは、設計時にアプリケーションに追加し、実行時にカスタマイズするデータ公開ポートレットです。実行時にウィザードベースで操作できるようになるため、ページ設計者は、SQL、XML、Webサービス、スプレッドシート、Webページなどの様々なデータ・ソースのデータを、カスタマイズ可能なチャートや表などの様々なレイアウトで公開できます。
この章では、OmniPortletをOracle JDeveloper環境で使用する予定である場合に役に立つ情報について説明します。OmniPortletウィザードの使用方法の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』を参照してください。
この章には次の項が含まれます:
OmniPortletの登録の詳細は、第62.3項「WebCenter Portal: FrameworkアプリケーションへのOracle PDK-Javaポートレット・プロデューサの登録」を参照してください。
OmniPortletは、Oracle WebCenter Frameworkのサブコンポーネントで、これにより開発者は、コードを書くことなく、様々なレイアウトを使用して、各種データ・ソースのデータを簡単に公開できます。OmniPortletでは、Webサービス、SQLデータベース、スプレッドシート(値を特定の文字で区切ったもの)、XML、さらには既存のWebページのアプリケーション・データなど、ほとんどあらゆる種類のデータ・ソースを使用できます。図63-1に、OmniPortletを使用して作成したポートレットの例を示します。
OmniPortletを使用すると、WebCenter Portal: Frameworkアプリケーション開発者およびコンポーネント開発者は、次のことができます。
複数ソース(CSV、XML、Webサービス、SQLなど)のデータの表示
表示するデータのソート
多様なレイアウト(箇条書きリスト、チャート、HTMLなど)を使用したデータの書式設定
ポートレット・パラメータの使用
ページ・ビューアへのパーソナライズ可能な設定の公開
パーソナライズされたデータを表示する場合は、データ・ソースから戻された結果をフィルタリングして、取得したデータを絞り込み、保護されたデータのアクセスに使用する資格証明情報をパラメータ化できます。OmniPortletには最初から、表、チャート、HTML、ニュース、箇条書きリストおよびフォームなど、最も一般的なポートレット用のレイアウトが用意されています。
第62章「ポートレットの消費」で説明しているように、OmniPortletは、Oracle JDeveloperで作成されたページに追加できます。OmniPortletは、Oracle JDeveloperとともにインストールされる統合WebLogic Server(統合WLS)に含まれています。統合WLSの起動後、「Oracle PDK-Javaプロデューサの登録」ウィザードを使用して、OmniPortletプロデューサを登録できます。このプロデューサが登録されると、Oracle JDeveloperの「リソース・パレット」または「アプリケーション・リソース」パネルでポートレットを使用できるようになります。たとえば、OmniPortletプロデューサをOmniProducerとして登録すると、図63-2に示すように、OmniPortletが「リソース・パレット」の「IDE接続」リストに表示されます。
注意: 詳細の参照先は、次のとおりです。
|
ポートレット・プロデューサを登録したら、OmniPortletを*.jspx
ページにドラッグするだけです。
注意: Oracle JDeveloperでOmniPortletのインスタンスをページに追加する際、ポートレットの「プロパティ・インスペクタ」を開き、
|
Oracle JDeveloperでのOmniPortletの構成の詳細は、第63.4項「OmniPortlet構成のヒント」を参照してください。
設計時にOmniPortletをアプリケーションに追加しておくと、アプリケーションをブラウザで実行することにより、コンテンツ、レイアウトおよびその他のオプションをカスタマイズできます。この項では、実行時のカスタマイズに関する大まかな概要を説明します。このポートレットの使用およびカスタマイズ方法の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』を参照してください。
OmniPortletウィザードには最初に、5つの手順が含まれています。OmniPortletを初めて定義するときは、データ・ソース・タイプ、データ・ソース・オプション、フィルタ・オプション、表示オプションおよびレイアウトを設定します。ウィザードのこれらの設定手順を終えた後にウィザードを再開する場合は、ポートレットの「カスタマイズ」リンクをクリックします。ウィザードを再開すると、「ソース」、「フィルタ」、「表示」および「レイアウト」の各タブで定義を変更できます。
注意: IBM Linux on Powerプラットフォームで、OmniPortletの定義時に、アクション・ボタン(「次へ」、「終了」、「取消」)が点の状態に最小化されている場合は、スタック・サイズのシェル制限を無制限にし、 |
OmniPortletには次の各種データ・ソースを使用できます。
スプレッドシート
SQL
XML
Webサービス
Webページ
OmniPortletでこれらのデータ・ソースを使用する方法の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』を参照してください。
この項では、OmniPortletの構成について説明します。OmniPortletウィザードの詳細は、第63章「OmniPortletを使用したポートレットの作成」を参照してください。この項には、次の領域の構成情報が含まれています。
第63.4.3項「PortalツールおよびWebプロデューサの構成(オプション)」
注意: この項では、
> find DOMAIN_DIR -name "provider.xml" | grep -i omniportlet
統合WebLogic Server (統合WLSまたはデフォルト・サーバー)では、OmniPortletの JDEV_SYSTEM_DIRECTORY/DefaultDomain/servers/DefaultServer/tmp/_WL_user/portalTools_11.1.1.2.0/RANDOMLY_GENERATED_DIRECTORY/war/WEB-INF/providers/omniPortlet/provider.xml Windowsプラットフォームでは、JDeveloperのシステム・ディレクトリのパスに空白があると、Frameworkアプリケーション内のページはレンダリングされません。したがって、 Fusion Middleware 11gインストールでは、OmniPortletの FMW_HOME/user_projects/domains/wc_domain/servers/WLS_Portlet/tmp/_WL_user/portalTools_version_number/RANDOMLY_GENERATED_DIRECTORY/war/WEB-INF/providers/omniPortlet/provider.xml |
OmniPortletプロデューサがファイアウォールの内側にある場合、OmniPortletがファイアウォールの外側にあるデータ(CSV、XMLまたはWebサービスなど)のURLにアクセスできるように、プロキシ情報を構成する必要があります。そのために、WebLogic Serverを起動するときにコマンドラインでプロキシ情報を設定できます。また、OmniPortlet_WAR_DIR
/WEB-INF/providers/omniPortlet/provider.xml
にあるOmniPortletのprovider.xml
ファイルでプロキシ情報を設定することもできます。
注意: Webサービス・データ・ソースの場合、 |
WebLogic Serverを起動するときにコマンドラインでプロキシ情報を設定するには、HTTPプロキシ・ホストを使用している場合は表63-1、HTTPSプロキシ・ホストを使用している場合は表63-2に示すパラメータを設定します。
表63-1 HTTPプロキシ情報コマンドライン・パラメータ
パラメータ | 説明 |
---|---|
|
プロキシ・サーバーのホスト名(OmniPortletプロデューサからそのデータ・ソースにURL接続するためにそれが必要な場合)。 |
|
HTTPプロキシ・ホストのポート番号。 |
|
ローカル・マシンなど、プロキシ・サーバーを迂回して直接接続できる任意のドメインまたはホストの名前。
ホストは、完全修飾ホスト名でもIPアドレスでもかまいません。 |
|
プロキシ・サーバーが認証を必要とする場合にプロキシ・サーバーにログインするためのユーザー。 |
|
プロキシ・サーバーが認証を必要とする場合にプロキシ・サーバーにログインするためのパスワード。 |
|
プロキシ・サーバーの認証タイプ。指定可能な値: |
|
プロキシ・サーバーのレルムの名前。レルムの名前がわからない場合は、プロキシ・サーバーの管理者に問い合せてください。 |
表63-2 HTTPSプロキシ情報コマンドライン・パラメータ
パラメータ | 説明 |
---|---|
|
プロキシ・サーバーのホスト名(OmniPortletプロデューサからそのデータ・ソースにURL接続するためにそれが必要な場合)。 |
|
HTTPSプロキシ・ホストのポート番号。 |
|
ローカル・マシンなど、プロキシ・サーバーを迂回して直接接続できる任意のドメインまたはホストの名前。
ホストは、完全修飾ホスト名でもIPアドレスでもかまいません。 |
|
プロキシ・サーバーが認証を必要とする場合にプロキシ・サーバーにログインするためのユーザー。 |
|
プロキシ・サーバーが認証を必要とする場合にプロキシ・サーバーにログインするためのパスワード。 |
|
プロキシ・サーバーの認証タイプ。指定可能な値: |
|
プロキシ・サーバーのレルムの名前。レルムの名前がわからない場合は、プロキシ・サーバーの管理者に問い合せてください。 |
3つのパラメータとその値の例を次に示します。
-Dhttps.proxyHost=myProxyServer.mycompany.com -Dhttps.proxyPort=80 -Dhttps.nonProxyHosts=localhost|localhost.localdomain|127.0.0.1|
provider.xml
ファイルでプロキシ情報を構成するためのパラメータのリストとそれらの説明は、表63-3を参照してください。
表63-3 Provider.xmlのタグ
パラメータ | 説明 |
---|---|
|
OmniPortletプロデューサからそのデータ・ソースへのURL接続を行うために必要な場合、プロキシ・サーバーのホスト名を入力します。 |
|
HTTPプロキシ・ホストのポート番号を入力します。 |
|
プロキシ・サーバーを介さずに直接接続できるドメインまたはホスト名を入力します。ドメイン名は、次の例のように、企業、組織、政府機関などの名前を含むURLの一部です。
ホストは、完全修飾ホスト名でもIPアドレスでもかまいません。 |
|
指定可能な値: プロキシ・サーバーに認証が必要な場合は、trueを入力します。認証パラメータは、 |
proxyType |
指定可能な値: プロキシ・サーバーのタイプを選択します。 BasicまたはDigest認証の詳細は、 |
|
この表で後から説明するログイン情報に従い、ユーザーがアクセスするプロキシ・サーバーのレルムの名前を入力します。レルムの名前がわからない場合は、プロキシ・サーバーの管理者に問い合せてください。 |
|
指定可能な値: true | trueの場合、 |
|
プロキシ・サーバーにログインするユーザー名を入力します。 |
|
指定したユーザー名のパスワードを入力します。プレーン・パスワード・テキストの前に!を付ける必要があります。プロデューサが起動すると、これは |
ファイアウォール外のデータにアクセスするためにプロキシを使用する基本的な例は、次のとおりです。
<proxyInfo class="oracle.portal.provider.v2.ProxyInformation"> <httpProxyHost>www-proxy.example.com</httpProxyHost> <httpProxyPort>80</httpProxyPort> <proxyUseAuth>false</proxyUseAuth> </proxyInfo>
次の例では、プロキシ・サーバーのすべてのユーザーに、ログインおよびBasic認証が必要です。
<proxyInfo class="mycompany.portal.provider.v2.ProxyInformation"> <httpProxyHost>myport.example.com</httpProxyHost> <httpProxyPort>8080</httpProxyPort> <proxyUseAuth>true</proxyUseAuth> <proxyType>Basic</proxyType> <proxyRealm>myport</proxyRealm> <proxyUseGlobal>false</proxyUseGlobal> </proxyInfo>
OmniPortlet SQLデータ・ソースは、OracleデータベースにはOracle JDBCドライバを使用して、ODBCデータ・ソースにはSun社のJDBC-ODBCドライバを使用してアクセスするように事前に構成されています。開発者は、DataDirect JDBCドライバを使用して他のリレーショナル・データベースにアクセスできます。
関連項目: サポートされているデータベースのリストは、Oracle Technology Network ( |
この項の内容は、次のとおりです。
WebLogic Serverインストールには、次のDataDirect JDBCドライバが含まれています。
YMutil.jar
YMsybase.jar
YMsqlserver.jar
YMspy.jar
YMinformix.jar
YMdb2.jar
YMbase.jar
これらのDataDirectドライバを使用する予定がない場合は、かわりに目的のデータベースにアクセスするためのDataDirect JDBCドライバをダウンロードできます。これらのドライバは、1つのZIPにパッケージ化されており、次の場所からダウンロードできます。
http://www.oracle.com/technetwork/topics/datadirect-index-091847.html
DataDirect JDBCドライバをインストールするには:
ZIPファイルの中身を一時ディレクトリ(/temp/datadirect
など)に解凍します。
DataDirect JDBCドライバを一時ディレクトリからご使用のWebLogic ServerディレクトリであるWLS_DOMAIN_DIRECTORY/lib
にコピーします。
OmniPortletはWebプロデューサとして実装され、構成プロパティはすべてprovider.xml
ファイルに格納されています。DataDirect JDBCドライバをOmniPortletで使用するには、これらのドライバをprovider.xml
ファイルに登録する必要があります。
新しいDataDirect JDBCドライバを登録するには:
OmniPortlet_WAR_DIRECTORY
/WEB-INF/providers/omniPortlet/provider.xml
ファイルをバックアップして、そのファイルを開きます。
SQLデータ・ソース構成エントリに使用するドライバを追加します。
XMLタグdriverInfo
を検索します。
最後のdriverInfo
タグの後に新しいエントリを追加します。
WebLogic DataDirectドライバのdriverInfoの例を次に示します。
Microsoft SQL Server (デフォルト接続):
<driverInfo class="oracle.webdb.reformlet.data.jdbc.JDBCDriverInfo"> <name>Microsoft SQL Server</name> <sourceDataBase>other</sourceDataBase> <subProtocol>weblogic:sqlserver</subProtocol> <connectString>mainProtocol:subProtocol://databaseName</connectString> <driverClassName>weblogic.jdbc.sqlserver.SQLServerDriver </driverClassName> <dataSourceClassName>weblogic.jdbcx.sqlserver.SQLServerDataSource </dataSourceClassName> <connHandlerClass>oracle.webdb.reformlet.data.jdbc.JDBCConnectionHandler </connHandlerClass> <connPoolSize>5</connPoolSize> <loginTimeOut>30</loginTimeOut> </driverInfo>
Microsoft SQL Server (名前付き接続。たとえば、mycompany.com:port;databaseName=mydb
):
<driverInfo class="oracle.webdb.reformlet.data.jdbc.JDBCDriverInfo"> <name>Microsoft SQL Server</name> <sourceDataBase>other</sourceDataBase> <subProtocol>weblogic:sqlserver</subProtocol> <connectString>mainProtocol:subProtocol://databaseName</connectString> <driverClassName>weblogic.jdbc.sqlserver.SQLServerDriver </driverClassName> <connHandlerClass> oracle.webdb.reformlet.data.jdbc.JDBCODBCConnectionHandler </connHandlerClass> <connPoolSize>5</connPoolSize> <loginTimeOut>60</loginTimeOut> </driverInfo>
Sybase:
<driverInfo class="oracle.webdb.reformlet.data.jdbc.JDBCDriverInfo"> <name>Sybase</name> <sourceDataBase>other</sourceDataBase> <subProtocol>weblogic:sybase</subProtocol> <connectString>mainProtocol:subProtocol://databaseName</connectString> <driverClassName>weblogic.jdbc.sybase.SybaseDriver </driverClassName> <connHandlerClass> oracle.webdb.reformlet.data.jdbc.JDBCODBCConnectionHandler </connHandlerClass> <connPoolSize>5</connPoolSize> <loginTimeOut>30</loginTimeOut> </driverInfo>
DB2:
<driverInfo class="oracle.webdb.reformlet.data.jdbc.JDBCDriverInfo"> <name>DB2</name> <sourceDataBase>other</sourceDataBase> <subProtocol>weblogic:db2</subProtocol> <connectString>mainProtocol:subProtocol://databaseName</connectString> <driverClassName>weblogic.jdbc.db2.DB2Driver </driverClassName> <connHandlerClass> oracle.webdb.reformlet.data.jdbc.JDBCODBCConnectionHandler </connHandlerClass> <connPoolSize>5</connPoolSize> <loginTimeOut>30</loginTimeOut> </driverInfo>
Informix:
<driverInfo class="oracle.webdb.reformlet.data.jdbc.JDBCDriverInfo"> <name>Informix</name> <sourceDataBase>other</sourceDataBase> <subProtocol>weblogic:informix</subProtocol> <connectString>mainProtocol:subProtocol://databaseName</connectString> <driverClassName>weblogic.jdbc.informix.InformixDriver </driverClassName> <connHandlerClass> oracle.webdb.reformlet.data.jdbc.JDBCODBCConnectionHandler </connHandlerClass> <connPoolSize>5</connPoolSize> <loginTimeOut>30</loginTimeOut> </driverInfo>
表63-4では、driverInfo
プロパティのパラメータについて説明しています。
表63-4 driverInfoプロパティのパラメータ
パラメータ | 説明 |
---|---|
|
使用するデータベースの名前。この名前は、「OmniPortlet」ウィザードの「ソース」タブで使用されます。 |
|
内部値。値を |
|
接続文字列( |
|
接続文字列の書式の説明。DataDirectドライバの場合、書式は |
|
ドライバ・クラスの名前。様々な値を取得するには、この項の最後にあるリンクを使用して、DataDirect JDBCドライバのドキュメントを参照してください。 |
|
接続プーリングを実装するデータ・ソース・クラスの名前。このパラメータは、OmniPortletリリース9.0.4.1以上でのみ使用可能です。使用するドライバの正しいデータ・ソース・クラス名は、表63-5を参照してください。 |
|
ドライバおよび接続プーリングの管理にOmniPortletで使用されるクラス。値は次のいずれかです。
|
|
接続プールによって開かれる接続の最小数。 |
|
このデータ・ソースが、データベースへの接続を試みる間待機する最大時間(秒)。 |
表63-5では、特定のDataDirect JDBCドライバのdriverClassName
プロパティとdataSourceClassName
プロパティの値を示します。
表63-5 driverClassNameおよびdataSourceClassNameのパラメータと値
サポートされるDataDirectドライバ | プロパティ |
---|---|
Microsoft SQL Server |
パラメータ: 値: |
Sybase |
パラメータ: 値: |
DB2 |
パラメータ: 値: |
Informix |
パラメータ: 値: |
provider.xml
ファイルを保存します。
ポートレット・プロデューサがデプロイされていたOracle WebLogic管理対象サーバー・インスタンスを停止してから起動します。
これを行うには、FMW_HOME
/user_projects/domains/wc_Domain/bin
に移動し、次のコマンドを発行します。
./startManagedWebLogic.sh WC_Portlet
注意: 複数ノード構成(クラスタリングまたはロードバランシング環境など)でOmniPortletを使用している場合、 |
ローカルにビルドされたOmniPortletプロデューサおよびカスタム・ビルドされたWebプロデューサが、中間層環境で適切に機能するようにするには、追加の構成が必要な場合があります。ファイル・システムでOmniPortletまたはその他のWebプロデューサがカスタマイズされている場合、PDK-Javaによって提供されているプリファレンス・ストア移行/アップグレード・ユーティリティを使用して、既存のカスタマイズをデータベースに移行し、前のリリースからカスタマイズをアップグレードできます。PDKプリファレンス・ストア移行ユーティリティの詳細は、第60.3.8.2項「PDK-Javaプロデューサの永続ストアの移行」を参照してください。
複数中間層環境でのPortalツール・プロデューサの構成
デフォルトでは、OmniPortletプロデューサはデータベースのプリファレンス・ストアを使用します。これは、追加の構成を必要とせずに複数の中間層環境で機能します。
第60.3.8.2項「PDK-Javaプロデューサの永続ストアの移行」に、データベース・プリファレンス・ストアの構成の詳細が記載されています。
カスタマイズを行ったOmniPortletインスタンスをファイル・システム内で作成済の場合は、プリファレンス・ストア移行ユーティリティを使用して、これらのカスタマイズをデータベースに移行する必要があります。
この移行ユーティリティを実行するには:
次のコマンドを使用して、WebCenter Portal Oracleホーム・ディレクトリに移動します。
cd WC_ORACLE_HOME
次のコマンドを実行して、OmniPortletデータをファイルベースのプリファレンス・ストア(FilePreferenceStore
)からデータベース・プリファレンス・ストア(DBPreferenceStore
)に移行します。
java -classpath lib/dms.jar:jdbc/lib/ojdbc14dms.jar:portal/jlib/pdkjava.jar:portal/jlib/ ptlshare.jar oracle.portal.provider.v2.preference.MigrationTool -mode filetodb -pref1UseHashing true -pref1RootDirectory portal/portletdata/tools/omniPortlet -pref2User User_Name -pref2Password User_Password -pref2URL jdbc:oracle:thin:@infra.host.com:1521:orcl
PDKプリファレンス・ストア移行ユーティリティの詳細は、第60.3.8.2項「PDK-Javaプロデューサの永続ストアの移行」を参照してください。
通常、ロード・バランシング・ルーター(LBR)を構成する前に、OmniPortletおよびWebクリッピングのHTTPプロキシ構成を実行します。LBRの構成後にこれを行う手順は、次のとおりです。
Portalツールの構成情報は、中間層サーバー上のprovider.xml
ファイルに格納されています。1つの中間層(M1など)で構成を直接更新し、それをLBRがフロントエンド処理を行うすべての中間層に伝播する必要があります。最初に、M1以外の中間層をすべて停止する必要があります。
HTTPプロキシ設定をprovider.xml
ファイルで変更できます。詳細は、第63.4.1項「ファイアウォール外のデータにアクセスするためのOmniPortletプロデューサの構成」を参照してください。
provider.xml
ファイルに加えた変更を中間層M2に伝播します。
OmniPortlet_WAR_DIR
/WEB-INF/providers/omniPortlet/provider.xml
をM1からM2にコピーします。
WebClipping_WAR_DIR
/WEB-INF/providers/webClipping/provider.xml
をM1からM2にコピーします。
中間層M2を再起動します。
Frameworkアプリケーションでポートレット・プロデューサ登録を更新します。プロデューサ登録URLの最初の部分をhttp://m1.abc.com:7777/
からhttp://lbr.abc.com/
に変更します。
OmniPortletプロデューサおよびWebクリッピング・プロデューサが、LBRを介して正常に機能することを、次のURLにあるテスト・ページに移動して確認します。
OmniPortletプロデューサ: http://lbr.abc.com/portalTools/omniPortlet/producers/omniPortlet
OmniPortletプロデューサのテスト・ページで、「ポートレット情報」セクションに「使用可能なポートレットはありません」というメッセージが表示された場合、ステップ1でOmniPortletを正しく構成していない可能性があります。OmniPortletが正しく構成されている場合、「OmniPortlet」と「シンプル・パラメータ・フォーム」のポートレットがテスト・ページで利用できます。
Webクリッピング・プロデューサ: http://lbr.abc.com/portalTools/webClipping/producers/webClipping
注意: Webクリッピング・ポートレット、またはOmniPortletのWebページ・データ・ソースを使用するには、Oracle Web Cacheでセッション・バインディングを有効にすることも必要です。 |
この項では、OmniPortletの使用中に発生する可能性のある問題のトラブルシューティングに役立つ情報を提供します。
注意: OmniPortletプロデューサはFrameworkアプリケーションと異なる層に存在し、そこで実行され、セッション情報にはアクセスできないため、OmniPortletがアクセスできるように、XMLファイルをPUBLICとして公開する必要があります。 |
「定義」リンクを使用してOmniPortletを定義できない
実行時にOmniPortletを定義することはできません。
問題
OmniPortletは、true
のRenderPortletInIFrame
値のみをサポートします。これはOmniPortletをIFRAME内でレンダリングする必要があることを意味します。したがって、OmniPortletプロパティRenderPortletInIFrame
をtrue
に設定する必要があります。「プロパティ・インスペクタ」で、RenderPortletInIFrame
プロパティは、「表示オプション」の下にあります。
現時点では、RenderPortletInIFrame
プロパティの値はfalse
です。そのため、実行時に「定義」リンクをクリックしても、「タイプ」タブは表示されず、OmniPortletの定義を進めることができません。
解決方法
OmniPortletを定義するために、「処理」リストから「カスタマイズ」を選択するか、Oracle JDeveloperの「構造」ウィンドウでOmniPortletを選択して、RenderPortletInIFrame
をtrue
に設定します。