この付録では、PDK-Javaプロバイダの実装を、Oracle WebLogic Serverやその他のJ2EEアプリケーション・サーバー上にデプロイするのに適した、移植可能なフォーマットに、手動でパッケージ化する方法を説明します。また、パッケージ化した結果のEARファイルをOracle WebLogic Server環境にデプロイし、その後1つ以上のOracle Portalインスタンスに登録する方法も説明します。
注意: 通常は、Oracle JDeveloperに用意されているツールを使用してプロバイダをパッケージ化およびデプロイすることをお薦めします。ただし、なんらかの理由でプロバイダを手動でパッケージ化およびデプロイする必要がある場合に備えて、参照できる情報をこの付録で提供しておきます。 |
プロバイダのパッケージ化およびデプロイに進む前に、次の基本的な概念を理解する必要があります。
WARファイルとEARファイルは、Oracle WebLogic ServerのようなJ2EEアプリケーション・サーバーにアプリケーションをデプロイするのに使用します。WARファイルとEARファイルは、アプリケーションを実行するのに必要なコンポーネントのすべてを1つのファイルにカプセル化したものです。これらのファイルにより、アプリケーションのデプロイが非常に簡単で整合性がとれたものとなり、アプリケーションを開発からテストへ、テストから製品へと移行するときにエラーが発生する可能性が削減されます。
WARファイルは、Webアプリケーションを表し、Webアプリケーションのすべてのコンポーネントを含みます(Javaのライブラリやクラス、サーブレットの定義やパラメータ設定、JSPファイル、静的HTMLファイルおよびその他の必要なリソースを含む)。
EARファイルは、エンタープライズ・アプリケーションを表します。
PDK-Javaでは、1つのアダプタ・サーブレットの下に複数のプロバイダをデプロイできます。これらのプロバイダは、サービス識別子によって識別されます。新しいプロバイダをデプロイする場合は、プロバイダにサービス識別子を割り当て、プロバイダWARファイルの作成時にそのサービス識別子を使用する必要があります。サービスのこの名前は、ファイルservice_id
.properties
を検索するのに使用されます。このファイルは、テスト・ページの表示の有無など、プロバイダの特性を定義したものです。
たとえば、次のURLとurn:sample
というサービス識別子を使用して、PDK-Javaサンプル・プロバイダを登録できます。
http://mycompany.com/jpdk/providers
あるいは、次の形式のURLを使用することもできます。
http://mycompany.com/jpdk/providers/sample
すなわち、プロバイダ名(sample)をPDK-Javaサンプル・プロバイダのURLに追加します。この場合、プロバイダの登録時には「サービスID」フィールドは空白のままにします。
複数のポータルが同じプロバイダを共有している場合は、サービス識別子を個別に指定できます。各ポータルを異なるサービス識別子に登録することによって、コンシューマごとに個別にプロバイダのプロパティを指定できます。
プロバイダをデプロイしたら、正しいサービス識別子を使用してプロバイダをOracle Portalに登録する必要があります。これにより、リクエストが正しいプロバイダにルーティングされます。アダプタ・サーブレットがサービス識別子のないリクエストを受信した場合、そのリクエストはデフォルトのプロバイダに渡されます。
注意: サービス識別子が既知でない場合は、プロバイダのテスト・ページをチェックするか、プロバイダの管理者に問い合せてください。連携されたPortalアダプタを使用している場合、URLはプロバイダではなくアダプタを指すので、このフィールドに値を入力する必要があります。この場合、サービス識別子はurn: の後にデータベース・プロバイダの名前が続く形式となります。 |
次の項に、手動でプロバイダをパッケージ化およびデプロイする際に実行する必要がある手順を示します。
この項の手順では、手動でWARファイルをパッケージ化する方法を説明します。WARファイルをアセンブルするユーティリティの中に使い慣れているものがある場合は、それを使用してWARファイルをアセンブルしてください。
WARファイルを作成する前に、次の手順を実行する必要があります。
必要なファイルを収集できる作業ディレクトリを作成します。
/pdk/jpdk/v2/template.war
にあるtemplate.war
ファイルを作業ディレクトリに抽出します。ファイル・パスも抽出してください。
プロバイダで追加のJARファイルが必要な場合は、それをWEB-INF/lib
ディレクトリに追加します。
JARファイルに含まれていない追加のJavaクラスがプロバイダで必要とされる場合は、そのJavaクラスをWEB-INF/classes
ディレクトリに追加します。クラス・ファイルは、JavaクラスのJavaパッケージ名に対応するディレクトリ構造に保存してください。
作業ディレクトリに静的HTMLファイル、JSPおよびイメージを追加します。これらのファイルの編成に必要であれば、サブディレクトリを作成します。サブディレクトリは、HTMLファイルまたはJSPファイルにアクセスするのに必要なパスの一部となります。
providersディレクトリの下に自分のプロバイダ用のサブディレクトリを作成します。
_default.properties
ファイルをservice_name
.properties
にコピーし、プロバイダの構成を反映するように編集します。
WEB-INF/deployment
フォルダにあるprovider_name
.properties
ファイルで、definition
値を次のように設定します。
definition=providers/provider_dir_you_created/provider.xml
作成したばかりのサブディレクトリにプロバイダ定義ファイルを配置します。
_default.properties
を、デフォルト・プロバイダの構成設定を反映するように編集します。デフォルト・プロバイダへのアクセスは、リクエストにサービス識別子が指定されていない場合に行われます。この手順の詳細は、D.2.1.2「デフォルト・サービスの指定」を参照してください。
コンテンツのレンダリングにサーブレットを使用する場合は、WEB-INF/web.xml
を編集して、サーブレットを事前定義済のサーブレットの一覧に追加します。PDK-Javaが必要とするサーブレットのエントリを削除しないように注意してください。
デフォルト・サービスは、サービス名を含まない任意のリクエストを受信するプロバイダです。デフォルト・プロバイダは、WARファイルのデプロイ・ディレクトリ内の_default.properties
ファイルを編集することによって指定します。
定義エントリを編集して、デフォルト・プロバイダを表すプロバイダ定義ファイルを指すようにします。パスは、ファイル・システム内でのファイルの物理的な位置ではなく、WARファイル内のWEB-INFディレクトリからの相対パスとします。
_default.properties
ファイルは、たとえば次のようになります。
serviceClass=oracle.webdb.provider.v2.adapter.soapV1.ProviderAdapter
loaderClass=oracle.portal.provider.v2.http.DefaultProviderLoader
showTestPage=true
definition=providers/sample/provider.xml
autoReload=true
WARファイルの内容を指定したら、次に、WARファイル自体を作成できます。WARファイルを作成する手順は、次のとおりです。
D.2.1.1項「ディレクトリの準備」で作成した作業ディレクトリの内容を圧縮します(このとき、サブディレクトリのパスは含めますが作業ディレクトリのパス自体は含めません)。
圧縮後のファイル名をわかりやすい名前に変更し、拡張子を.war
に変更します。
EARファイルを作成するために、別の作業ディレクトリを作成します。
/pdk/jpdk/v2/template.ear
にあるtemplate.ear
ファイルを作業ディレクトリに抽出します。ファイル・パスも抽出してください。
テンプレートEARファイルに含まれていたMETA-INF/application.xml
ファイルを開きます。このファイルは次のようになっているはずです。
<?xml version "1.0"> <!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc. //DTD J2EE Application 1.3//EN" "http://java.sun.com/j2ee/dtds/application_1_3.dtd"> <application> <display-name>Display Name of the Application</display-name> <description>Description of the application</description> <module> <web> <web-uri>yourwarfile.war</web-uri> <context-root>/</context-root> </web> </module> </application>
表D-1に、application.xml
の要素を示して、説明します。
ファイルapplication.xml
を、名前変更せずに、同じ位置に上書き保存します。
前に作成したWARファイルを自分の作業ディレクトリにコピーします。これはサブディレクトリ内ではなく、作業ディレクトリの直下に配置します。
作業ディレクトリの内容を圧縮します(このとき、サブディレクトリのパスは含めますが、作業ディレクトリのパス自体は含めません)。
圧縮後のファイル名をわかりやすい名前に変更し、拡張子を.ear
に変更します。
Fusion Middlewareコントロールを使用して、EARファイルをWebLogic Managed Server(WLS_PORTAL)にデプロイできます。EARファイルをデプロイするには、次の手順を実行します。
Oracle Fusion Middlewareコントロールを起動し、PDK-Javaを構成したPortalインスタンス(たとえば、WLS_PORTAL
)のホーム・ページにナビゲートします。
WebLogic Serverのメニューから、「アプリケーションのデプロイ」、「デプロイ」の順に選択します。
「アーカイブの選択」ページが表示されます。
「アーカイブ」または「展開ディレクトリ」セクションでは、以下のいずれかを選択できます。
アーカイブはこのブラウザが実行中のマシンにあります。 アーカイブの場所を入力するか、「参照」をクリックしてアーカイブ・ファイルを探します。
アーカイブまたは展開ディレクトリはEnterprise Managerが実行中のサーバーにあります。 アーカイブの場所を入力するか、「参照」をクリックしてアーカイブ・ファイルを探します。
「続行」をクリックします。WebモジュールのURLマッピングが表示されます。URLは、デフォルトではapplication.xml
に指定されているコンテキスト・ルート(たとえば、/myapp
)にマッピングされますが、デプロイされている他のアプリケーションのコンテキスト・ルートとの衝突を避けるために変更できます。
「デプロイ・プラン」セクションでは、以下のいずれかを選択できます。
新規デプロイ・プランを自動的に作成します。
デプロイ・プランはこのブラウザが実行中のマシンにあります。このオプションを選択する場合、プランのパスを入力してください。
デプロイ・プランはEnterprise Managerが実行中のサーバーにあります。このオプションを選択する場合、プランのパスを入力してください。
「次へ」をクリックします。
「ターゲットの選択」ページが表示されます。
アプリケーションをデプロイする先のターゲットを選択します。管理サーバー、管理対象サーバー、クラスタが表示されます。1つのクラスタ、クラスタ内の1つ以上の管理対象サーバー、またはクラスタ内に存在しない管理対象サーバーを選択できます。ターゲットのリストに管理サーバーが表示されますが、アプリケーションを管理サーバーにデプロイしないでください。管理サーバーは、Oracle WebLogic Server管理コンソールのような管理アプリケーションのみを意図しています。
「次へ」をクリックします。
「アプリケーション属性」ページが表示されます。
「アプリケーション属性」セクションで、「アプリケーション名」にアプリケーション名を入力します。
「Webモジュール」セクションの「コンテキスト・ルート」セクションで、Webモジュールのapplication.xmlファイルにコンテキスト・ルートが構成されていない場合は、アプリケーションのコンテキスト・ルートを指定できます。コンテキスト・ルートは、WebモジュールのURIです。Webサービスを含むそれぞれのWebモジュールまたはEJBモジュールがコンテキスト・ルートを持つことができます。
アプリケーションのadf-config.xmlファイル・アーカイブにMDS構成が含まれる場合、ターゲット・メタデータ・リポジトリセクションが表示されます。これを使用して、このアプリケーションのリポジトリとパーティションを選択できます。
リポジトリを変更するには、「リポジトリ名」の横にあるアイコンをクリックします。「メタデータ・リポジトリ」ダイアログ・ボックスで、リポジトリを選択して「OK」をクリックします。
パーティションを変更するには、「パーティション名」にパーティション名を入力します。
「配布」セクションでは、以下のいずれかを選択できます。
配布してアプリケーションを起動(すべてのリクエストに対応)
配布して管理モードでアプリケーションを起動(管理リクエストのみに対応)
配布のみ
「次へ」をクリックします。
デプロイ・ウィザード、デプロイ設定ページが表示されます。
このページでは、アプリケーションをデプロイする前に一般的なタスクを実行したり、デプロイ・プランを編集してディスクに保存することができます。以下のことができます。
Webモジュールの構成
アプリケーションのセキュリティ構成
デプロイ・プランの拡張
デプロイ・プランを編集して保存することもできます。
「デプロイ」をクリックします。
Application Server Controlに処理メッセージが表示されます。
デプロイが完了したら、閉じるをクリックします。
プロバイダのデプロイをテストするには、URLが次の形式であるプロバイダ・テスト・ページにアクセスします。
http://host:port/context_root/providers
これらの意味は、次のとおりです。
host
およびport
は、ターゲットOracle WebLogic ServerインスタンスのHTTPリスナーのホスト名とポート番号です。Oracle Web CacheがインストールされたOracle Fusion Middlewareのインストールでは、port
はOracle Web Cacheリスナー・ポート(たとえば、8090)である必要があります。Oracle WebLogic Serverのインストールでは、デフォルトのHTTPポート番号は8888です。
context_root
は、デプロイ時にプロバイダWebアプリケーションにマップしたURIパスの接頭辞(たとえば、/myapp
)です。dcmctl
を使用した手動によるデプロイの場合は、application.xml
に指定したデフォルトのURIパスの接頭辞です。
次に例を示します。
http://my.host.com:8090/newProvider/providers
.properties
ファイルにshowTestPage=true
が指定されている場合は、デフォルト・プロバイダ用の見慣れたテスト・ページが表示されます。特定のプロバイダ・サービス用のテスト・ページを表示するには、URLにサービス名を追加します。次に例を示します。
http://my.host.com:8090/newProvider/providers/myService
PDK-Javaでは、JNDI変数を使用して多くのデプロイ・プロパティを指定できます。表D-2に、これらの変数をリストして、説明します。
表D-2 プロバイダのデプロイ用JNDI変数
変数 | 説明 |
---|---|
oracle/portal/provider/global/log/logLevel |
PDK-Javaによって使用され、すべてのプロバイダに適用されるロギング・レベル(0-8)です。 |
oracle/portal/service_name/showTestPage
|
プロバイダのテスト・ページにアクセスできるかどうかを指定するブール・フラグです。デフォルト値はtrueです。 |
oracle/portal/service_name/maxTimeDifference
|
プロバイダのHMAC時間差です。 |
oracle/portal/service_name/definition
|
プロバイダの定義ファイル( |
oracle/portal/service_name/autoReload
|
ブール型の自動リロード・フラグです。デフォルト値はtrueです。 |
oracle/portal/service_name/sharedKey
|
HMAC共有キーです。デフォルト値はありません。 |
oracle/portal/service_name/rootDirectory
|
プロバイダのカスタマイズの場所です。デフォルト値はありません。 |
変数の設定
表D-2にリストした変数の値は、他のJNDI変数と同じように設定できます。JNDI変数の設定方法は、7.2.4.2項「JNDI変数値の設定」を参照してください。
本番環境でPDK-Javaフレームワークを使用するときは、プロバイダを保護する必要があります。プロバイダの保護方法は、7.2.7項「ポートレットのセキュリティの実装」および『Oracle Fusion Middleware Oracle Portal管理者ガイド』を参照してください。
プロバイダは、デプロイと検証が終了したら、他のプロバイダと同じように登録できます。プロバイダの登録方法は、6.5.5項「Oracle PDK-Javaポートレットの登録と表示」を参照してください。