ヘッダーをスキップ
Oracle Application Server Portal開発者ガイド
10g(10.1.3.1.0)
B31871-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

D 手動によるPDK-Javaプロバイダのパッケージ化およびデプロイ

この付録では、PDK-Javaプロバイダの実装を、Oracle Application Serverやその他のJ2EEアプリケーション・サーバー上にデプロイするのに適した、移植可能なフォーマットに、手動でパッケージ化する方法を説明します。また、パッケージ化した結果のEARファイルをOracle Application Server環境にデプロイし、その後1つ以上のOracleAS Portalインスタンスに登録する方法も説明します。


注意:

通常は、Oracle JDeveloperに用意されているツールを使用してプロバイダをパッケージ化およびデプロイすることをお薦めします。ただし、なんらかの理由でプロバイダを手動でパッケージ化およびデプロイする必要がある場合に備えて、参照できる情報をこの付録で提供しておきます。


注意:

この章全体にわたって、ORACLE_HOMEへの参照が記載されています。ORACLE_HOMEはOracleホームのフルパスを表し、どのOracleホームが参照されているかが自明な場合に使用されます。プロシージャで中間層、OracleAS Infrastructure、またはOracle Application Server Metadata Repositoryの各Oracleホームを区別する必要がある場合は、次の表記規則が使用されます。
  • MID_TIER_ORACLE_HOME: 中間層のOracleホームのフルパスを表します。

  • INFRA_ORACLE_HOME: Oracle Application Server InfrastructureのOracleホームのフルパスを表します。

  • METADATA_REP_ORACLE_HOME: Oracle Application Server Metadata Repositoryを含んだOracleAS Infrastructureのフルパスを表します。


D.1 概要

プロバイダのパッケージ化およびデプロイに進む前に、次の基本的な概念を理解する必要があります。

D.1.1 WARファイルとEARファイル

WARファイルとEARファイルは、Oracle Application ServerのようなJ2EEアプリケーション・サーバーにアプリケーションをデプロイするのに使用します。WARファイルとEARファイルは、アプリケーションを実行するのに必要なコンポーネントのすべてを1つのファイルにカプセル化したものです。これらのファイルにより、アプリケーションのデプロイが非常に簡単で整合性がとれたものとなり、アプリケーションを開発からテストへ、テストから製品へと移行するときにエラーが発生する可能性が削減されます。

  • WARファイルは、Webアプリケーションを表し、Webアプリケーションのすべてのコンポーネントを含みます(Javaのライブラリやクラス、サーブレットの定義やパラメータ設定、JSPファイル、静的HTMLファイルおよびその他の必要なリソースを含む)。

  • EARファイルは、エンタープライズ・アプリケーションを表します。

D.1.2 サービス識別子

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」フィールドは空白のままにします。

複数のポータルが同じプロバイダを共有している場合は、サービス識別子を個別に指定できます。各ポータルを異なるサービス識別子に登録することによって、コンシューマごとに個別にプロバイダのプロパティを指定できます。

プロバイダをデプロイしたら、正しいサービス識別子を使用してプロバイダをOracleAS Portalに登録する必要があります。これにより、リクエストが正しいプロバイダにルーティングされます。アダプタ・サーブレットがサービス識別子のないリクエストを受信した場合、そのリクエストはデフォルトのプロバイダに渡されます。


注意:

サービス識別子が既知でない場合は、プロバイダのテスト・ページをチェックするか、プロバイダの管理者に問い合せてください。連携されたPortalアダプタを使用している場合、URLはプロバイダではなくアダプタを指すので、このフィールドに値を入力する必要があります。この場合、サービス識別子はurn:の後にデータベース・プロバイダの名前が続く形式となります。

D.2 プロバイダのパッケージ化およびデプロイ

次の項に、手動でプロバイダをパッケージ化およびデプロイする際に実行する必要がある手順を示します。

D.2.1 プロバイダのパッケージ化

この項の手順では、手動でWARファイルをパッケージ化する方法を説明します。WARファイルをアセンブルするユーティリティの中に使い慣れているものがある場合は、それを使用してWARファイルをアセンブルしてください。

D.2.1.1 ディレクトリの準備

WARファイルを作成する前に、次の手順を実行する必要があります。

  1. 必要なファイルを収集できる作業ディレクトリを作成します。

  2. /pdk/jpdk/v2/template.warにあるtemplate.warファイルを作業ディレクトリに抽出します。ファイル・パスも抽出してください。

  3. プロバイダで追加のJARファイルが必要な場合は、それをWEB-INF/libディレクトリに追加します。

  4. JARファイルに含まれていない追加のJavaクラスがプロバイダで必要とされる場合は、そのJavaクラスをWEB-INF/classesディレクトリに追加します。クラス・ファイルは、JavaクラスのJavaパッケージ名に対応するディレクトリ構造に保存してください。

  5. 作業ディレクトリに静的HTMLファイル、JSPおよびイメージを追加します。これらのファイルの編成に必要であれば、サブディレクトリを作成します。サブディレクトリは、HTMLファイルまたはJSPファイルにアクセスするのに必要なパスの一部となります。

  6. providersディレクトリの下に自分のプロバイダ用のサブディレクトリを作成します。

  7. _default.propertiesファイルをservice_name.propertiesにコピーし、プロバイダの構成を反映するように編集します。

  8. WEB-INF/deploymentフォルダにあるprovider_name.propertiesファイルで、definition値を次のように設定します。

    definition=providers/provider_dir_you_created/provider.xml
    
    
  9. 作成したばかりのサブディレクトリにプロバイダ定義ファイルを配置します。

  10. _default.propertiesを、デフォルト・プロバイダの構成設定を反映するように編集します。デフォルト・プロバイダへのアクセスは、リクエストにサービス識別子が指定されていない場合に行われます。この手順の詳細は、D.2.1.2「デフォルト・サービスの指定」を参照してください。

  11. コンテンツのレンダリングにサーブレットを使用する場合は、WEB-INF/web.xmlを編集して、サーブレットを事前定義済のサーブレットの一覧に追加します。PDK-Javaが必要とするサーブレットのエントリを削除しないように注意してください。

D.2.1.2 デフォルト・サービスの指定

デフォルト・サービスは、サービス名を含まない任意のリクエストを受信するプロバイダです。デフォルト・プロバイダは、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

D.2.1.3 WARファイルの作成

WARファイルの内容を指定したら、次に、WARファイル自体を作成できます。WARファイルを作成する手順は、次のとおりです。

  1. D.2.1.1項「ディレクトリの準備」で作成した作業ディレクトリの内容を圧縮します(このとき、サブディレクトリのパスは含めますが作業ディレクトリのパス自体は含めません)。

  2. 圧縮後のファイル名をわかりやすい名前に変更し、拡張子を.warに変更します。

D.2.1.4 EARファイルの作成

EARファイルを手動で作成する手順は、次のとおりです。

  1. EARファイルを作成するために、別の作業ディレクトリを作成します。

  2. /pdk/jpdk/v2/template.earにあるtemplate.earファイルを作業ディレクトリに抽出します。ファイル・パスも抽出してください。

  3. テンプレート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の要素を示して、説明します。

    表D-1 application.xmlの要素

    要素 説明
    <display-name>
    

    アプリケーションの名前です。

    <description>
    

    アプリケーションとその機能の説明です。

    <web-uri>
    

    WARファイルの名前です。

    <context-root>
    

    デフォルトで自分のアプリケーションにマップするための接頭辞です(たとえば、/myapp)。


  4. ファイルapplication.xmlを、名前変更せずに、同じ位置に上書き保存します。

  5. 前に作成したWARファイルを自分の作業ディレクトリにコピーします。これはサブディレクトリ内ではなく、作業ディレクトリの直下に配置します。

  6. 作業ディレクトリの内容を圧縮します(このとき、サブディレクトリのパスは含めますが、作業ディレクトリのパス自体は含めません)。

  7. 圧縮後のファイル名をわかりやすい名前に変更し、拡張子を.earに変更します。

D.2.2 EARファイルのデプロイ

EARファイルは、要件に応じて、次のいずれかの方法でデプロイできます。

D.2.2.1 Grid Controlコンソールを使用したデプロイ

Grid Controlコンソールを使用してEARファイルをデプロイするには、ターゲットOC4JにPDK-Javaをインストールしておく必要があります。この方法を使用してEARファイルをデプロイする手順は、次のとおりです。

  1. Grid Controlコンソールを起動し、PDK-Javaを構成したOC4Jインスタンス(たとえば、OC4J_Portal)のホーム・ページにナビゲートします。

  2. 「アプリケーション」タブで、「EARファイルのデプロイ」をクリックします。

  3. 表D-2に示す情報を入力します。

    表D-2 「アプリケーション」タブの設定

    設定

    J2EEアプリケーション

    ローカル・ファイル・システム内のEARファイルのロケーションにブラウズします。

    アプリケーション名

    プロバイダ・アプリケーションに関連付ける一意の名前を入力します。

    親アプリケーション

    デフォルトを使用します。


  4. 「続行」をクリックします。WebモジュールのURLマッピングが表示されます。URLは、デフォルトではapplication.xmlに指定されているコンテキスト・ルート(たとえば、/myapp)にマッピングされますが、デプロイされている他のアプリケーションのコンテキスト・ルートとの衝突を避けるために変更できます。

  5. 「終了」をクリックします。入力した情報のすべてを含むサマリーが表示されます。

  6. 「デプロイ」をクリックします。

  7. 「OK」をクリックします。

    これで、プロバイダ・アプリケーションがOracle Application Serverインスタンスにデプロイされます。選択したOC4Jインスタンス用のアプリケーションのリストに、新しくデプロイしたアプリケーションが表示されます。EARファイルが正常にデプロイできたので、次は、デプロイをテストする必要があります。D.2.3項「デプロイのテスト」を参照してください。

D.2.2.2 dcmctlを使用した手動によるデプロイ

dcmctlを使用してEARファイルをデプロイするには、ターゲットOC4JにPDK-Javaをインストールしておく必要があります。


注意:

dcmctlを使用してOracle Application Serverインスタンスを管理する前に、Grid Controlコンソール・プロセスのいずれにも同じインスタンスを管理させていないことを確認してください。複数のプロセスが同一インスタンスを管理すると、インスタンスの管理に使用されるデータが不整合になったり破損する危険があります。

EARファイルは、次に示すコマンドライン・デプロイ・ユーティリティdcmctlを使用してデプロイします(大カッコ内の引数はオプションです)。

cd MID_TIER_ORACLE_HOME/dcm/bin/
./dcmctl deployApplication -f file -a app_name
   [-co comp_name] [-enableIIOP] [-rc rootcontext] [-pa parent_name]

これらの意味は、次のとおりです。

fileは、デプロイするEARファイルまたはWARファイルの名前です。

app_nameは、最初のデプロイでユーザーが指定したアプリケーションの名前です。

comp_nameは、アプリケーションをデプロイするOC4Jインスタンスの名前です。デフォルトは、ホーム・インスタンスです。(オプション)

enable IIOPは、Internet Inter-ORB Protocolを有効にします。(オプション)

rootcontextは、WebモジュールにアクセスするためにURLで使用される基準パスです(たとえば、http://hostname:port/context root)。このオプションは、WARファイルのデプロイの場合のみ適用されます。(オプション)

parent_nameは、親アプリケーションの名前です。親アプリケーションには、子アプリケーションによって使用される共通クラスが含まれています。(オプション)

これで、プロバイダ・アプリケーションがOracle Application Serverインスタンスにデプロイされます。EARファイルが正常にデプロイできたので、次は、デプロイをテストする必要があります。D.2.3項「デプロイのテスト」を参照してください。

D.2.2.3 スタンドアロンOC4Jへの手動によるデプロイ

EARファイルをOC4Jのスタンドアロン・インスタンスにデプロイするには、OC4Jが互換性のあるバージョンでありそれにPDK-Javaがインストールされていることが必要です。この方法でEARファイルをデプロイする手順は、次のとおりです。

  1. OC4Jがまだ実行されていない場合は、次のコマンドを使用して、バックグラウンド・プロセスとしてOC4Jを起動します。

    Microsoft Windowsの場合:

    cd OC4j_HOME\j2ee\home
    start java -server -Xmx256m -jar oc4j.jar
    
    

    UNIX/Linux(Bourneシェル)の場合:

    cd OC4J_HOME/j2ee/home
    java -server -Xmx256m -jar oc4j.jar &
    
    

    これらの意味は、次のとおりです。

    OC4J_HOMEは、OC4Jのインストール・ルート・ディレクトリです(たとえば、D:\oc4j904)。


    注意:

    -Xmx256mオプションは、OC4Jプロセスの最大ヒープ・サイズとして256MBを指定しています。これは推奨設定です。この設定は、アプリケーションにあわせて増減できます。java.lang.OutOfMemoryError例外が発生した場合は、この設定を大きくする必要があります。

  2. 次のコマンドを使用して、EARファイルをデプロイします。

    java -jar admin.jar ormi://localhost admin admin_password -deploy
     -deploymentName application_name -file ear_file_path
    
    

    これらの意味は、次のとおりです。

    admin_passwordは、インストール時に設定したOC4J管理パスワードです。

    application_nameは、管理目的でアプリケーションに付けた一意の名前です。

    ear_file_pathは、ファイル・システム上でのEARファイルへのフル・パスです。

  3. EARファイル内の各WARファイル(OC4J_HOME/j2ee/home/applications/application_name/application.xmlにリストされるもの)について次のコマンドを使用して、対応するWebアプリケーションをWebサイト上のURIパスにバインドします。

    java -jar admin.jar ormi://localhost admin admin_password
    -bindWebApp application_name web_app_name
    file:OC4J_HOME/j2ee/home/config/default-web-site.xml context_root
    
    

    これらの意味は、次のとおりです。

    web_app_nameは、.war拡張子なしのWARファイル名です(たとえば、jpdk)。

    context_rootは、WebアプリケーションにマップするためのURIパスの接頭辞です(たとえば、/myapp)。

    これで、プロバイダ・アプリケーションがOracle Application Serverインスタンスにデプロイされます。EARファイルが正常にデプロイできたので、次は、デプロイをテストする必要があります。D.2.3項「デプロイのテスト」を参照してください。

D.2.3 デプロイのテスト

プロバイダのデプロイをテストするには、URLが次の形式であるプロバイダ・テスト・ページにアクセスします。

http://host:port/context_root/providers

これらの意味は、次のとおりです。

hostおよびportは、ターゲットOC4JインスタンスのHTTPリスナーのホスト名とポート番号です。OracleAS Web CacheがインストールされたOracle Application Serverのインストールでは、portはOracleAS Web Cacheリスナー・ポート(たとえば、7777)である必要があります。スタンドアロンOC4Jのインストールでは、デフォルトのHTTPポート番号は8888です。

context_rootは、デプロイ時にプロバイダWebアプリケーションにマップしたURIパスの接頭辞(たとえば、/myapp)です。dcmctlを使用した手動によるデプロイの場合は、application.xmlに指定したデフォルトのURIパスの接頭辞です。

次に例を示します。

http://my.host.com:7777/newProvider/providers

.propertiesファイルにshowTestPage=trueが指定されている場合は、デフォルト・プロバイダ用の見慣れたテスト・ページが表示されます。特定のプロバイダ・サービス用のテスト・ページを表示するには、URLにサービス名を追加します。次に例を示します。

http://my.host.com:7777/newProvider/providers/myService

D.2.4 デプロイ・プロパティの設定

PDK-Javaでは、JNDI変数を使用して多くのデプロイ・プロパティを指定できます。表D-3に、これらの変数をリストして、説明します。

表D-3 プロバイダのデプロイ用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

プロバイダの定義ファイル(provider.xml)の場所です。

oracle/portal/service_name/autoReload

ブール型の自動リロード・フラグです。デフォルト値はtrueです。

oracle/portal/service_name/sharedKey

HMAC共有キーです。デフォルト値はありません。

oracle/portal/service_name/rootDirectory

プロバイダのカスタマイズの場所です。デフォルト値はありません。


変数の設定

表D-3にリストした変数の値は、他のJNDI変数と同じように設定できます。JNDI変数の設定方法は、7.2.4.2項「JNDI変数値の設定」を参照してください。

D.2.5 プロバイダの保護

本番環境でPDK-Javaフレームワークを使用するときは、プロバイダを保護する必要があります。プロバイダの保護方法は、7.2.7項「ポートレットのセキュリティの実装」および『Oracle Application Server Portal構成ガイド』を参照してください。

D.2.6 プロバイダの登録

プロバイダは、デプロイと検証が終了したら、他のプロバイダと同じように登録できます。プロバイダの登録方法は、6.6.2.5項「ポートレットの登録と表示」を参照してください。