BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

WebLogic XML プログラマーズ ガイド

 前 次 目次 索引 PDFで表示  

XML アプリケーション スコーピング

以下の節では、特定のアプリケーションのためにパーサ、トランスフォーマ、外部エンティティ、外部エンティティ キャッシュをコンフィグレーションする方法について説明します。

 


アプリケーション スコーピングの概要

アプリケーション スコーピングとは、WebLogic Server コンフィグレーション全体ではなく、特定のエンタープライズ アプリケーション用のリソースをコンフィグレーションすることです。XML の場合、リソースとしては、パーサ、トランスフォーマ、外部エンティティ、外部エンティティ キャッシュ コンフィグレーションなどがあります。アプリケーション スコーピングの大きなメリットは、特定のアプリケーション用のリソースをアプリケーション自体から分離することです。アプリケーション スコーピングにより、アプリケーションごとに異なるパーサをコンフィグレーションすること、EAR ファイルや展開されたエンタープライズ ディレクトリ内のアプリケーション用の DTD を保管することなどができます。

アプリケーション スコーピングを使用するもう 1 つのメリットは、リソースを EAR ファイルと関連付けることにより、WebLogic Server の別のインスタンスで、そのサーバのリソースをコンフィグレーションせずにこの EAR ファイルを実行できることです。

特定のアプリケーション用の XML リソースをコンフィグレーションするには、EAR ファイルまたは展開されたエンタープライズ ディレクトリの META-INF ディレクトリにある weblogic-application.xml デプロイメント記述子ファイルに情報を追加します。

注意: WebLogic Server インスタンス用のパーサ、トランスフォーマ、外部エンティティ リソースをコンフィグレーションするには、WebLogic Server XML の管理で説明するように、Administration Console を使用します。

 


weblogic-application.xml ファイル

weblogic-application.xml ファイルは、エンタープライズ アプリケーション用のWebLogic Server 独特のデプロイメント記述子です。このファイルには、エンタープライズ アプリケーションにより使用される XML、JDBC、EJB などのリソースに関するコンフィグレーション情報が入れられます。標準 J2EE デプロイメント記述子は、application.xml と呼ばれます。

次のサンプル ファイル weblogic-application.xml は、あるエンタープライズ アプリケーション用の XML リソースをコンフィグレーションする方法を示しています。各種要素の本文は太字で示します。

<weblogic-application>
...
<xml>
<parser-factory>
<saxparser-factory>
weblogic.xml.babel.jaxp.SAXParserFactoryImpl
</saxparser-factory>
<document-builder-factory>
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
</document-builder-factory>
<transformer-factory>
org.apache.xalan.processor.TransformerFactoryImpl
</transformer-factory>
</parser-factory>
<entity-mapping>
<entity-mapping-name>My Mapping</entity-mapping-name>
<public-id>-//BEA Systems, Inc.//DTD for cars//EN</public-id>
<system-id>http://www.bea.com/dtds/car.dtd</system-id>
<entity-uri>dtds/car.dtd</entity-uri>
</entity-mapping>
</xml>
</weblogic-application>

XML リソースをコンフィグレーションするためのメイン要素は、<xml>です。次の図に、<xml>要素のサブ要素を示し、その後の節で各要素について説明します。

icon 要素 ejb 要素 ejb 要素
 

xml

パーサ、トランスフォーマ、外部エンティティ、外部エンティティ キャッシュなど、エンタープライズ アプリケーション用 XML リソースをコンフィグレーションするためのメイン要素。

parser-factory

エンタープライズ アプリケーション用の特定のパーサまたはトランスフォーマを指定するための親要素。

saxparser-factory

このアプリケーションで SAX スタイル解析のために使用されるファクトリ クラスを指定する要素。この要素が指定されていない場合、WebLogic Server インスタンスに対して指定されたデフォルト SAX パーサ ファクトリが使用されます。

document-builder-factory

このアプリケーションで DOM スタイル解析のために使用されるファクトリ クラスを指定する要素。この要素が指定されていない場合、WebLogic Server インスタンスに対して指定されたデフォルト DOM パーサ ファクトリが使用されます。

transformer-factory

このアプリケーションで javax.xml.transform パッケージによりドキュメントを変換する場合に使用されるファクトリ クラスを指定する要素。この要素が指定されていない場合、WebLogic Server インスタンスに対して指定されたデフォルト XSLT トランスフォーマ ファクトリが使用されます。

entity-mapping

DTD やスキーマなど、XML ファイル内のエンティティ宣言をエンティティのローカル コピーにマッピングするための親要素。

entity-mapping-name

エンティティ マッピング宣言の名前を指定する要素。

public-id

次のようなエンティティのパブリック ID を指定する要素。

 -//BEA Systems, Inc.//DTD for cars//EN.

system-id

次のようなエンティティのシステム ID を指定する要素。

http://www.bea.com/dtds/car.dtd

entity-uri

エンティティの URI を指定する要素。このパスは、EAR アーカイブまたは展開ディレクトリのメイン ディレクトリを基準とする相対パスです。

たとえば、dtds/car.dtd は、メイン EAR アーカイブ(META-INF ディレクトリと同じレベル)に dtds という名前のディレクトリがあり、そこに car.dtd という名前のファイルがあることを示します。

when-to-cache

外部エンティティをキャッシュする時期を指定する要素。有効な値は次のとおりです。

デフォルト値は cache-on-reference です。

cache-timeout-interval

キャッシュされた外部エンティティが古くなる(期限切れになる)までの秒数を指定する要素。キャッシュされたコピーがこの期間を超えた場合、WebLogic Server は、EAR アーカイブまたは展開ディレクトリのメイン ディレクトリを基準に指定された相対 URL またはパス名から外部エンティティを再取得します。

このフィールドのデフォルト値は、120 秒です。

 


エンタープライズ アプリケーション用のパーサまたはトランスフォーマのコンフィグレーション

XML アプリケーションが、WebLogic Server に対してコンフィグレーションされた組み込みパーサまたはトランスフォーマと異なるパーサまたはトランスフォーマを使用するように指定できます。それには、XML アプリケーションの入っている EAR ファイルまたは展開ディレクトリの weblogic-application.xml を更新します。

エンタープライズ アプリケーション用に組み込み以外のパーサまたはトランスフォーマをコンフィグレーションするには、以下の手順を実行します。

  1. <xml> 要素の <parser-factory> サブ要素を使用し、エンタープライズ アプリケーションのために、SAX および DOM スタイル解析用および XSLT 変換用のファクトリ クラスをコンフィグレーションします。次に例を示します。

<parser-factory>
<saxparser-factory>
weblogic.xml.babel.jaxp.SAXParserFactoryImpl
</saxparser-factory>
<document-builder-factory>
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
</document-builder-factory>
<transformer-factory>
org.apache.xalan.processor.TransformerFactoryImpl
</transformer-factory>
</parser-factory>

この weblogic-application.xml ファイルに対応するアプリケーションでは、SAX スタイル解析には weblogic.xml.babel.jaxp.SAXParserFactoryImpl ファクトリ クラス、DOM スタイル解析には org.apache.xerces.jaxp.DocumentBuilderFactoryImpl ファクトリ クラス、XSLT変換には org.apache.xalan.processor.TransformerFactoryImpl クラスが使用されます。

  • パーサ クラスまたはトランスフォーマ クラスを EAR アーカイブに対してローカルにするには、対象のクラスの入っている JAR ファイルを EAR ファイルの任意の場所に置き、WEB-INF/MANIFEST.MF ファイル内の Class-Path 変数を更新します。

    たとえば、ディレクトリ lib/xml にある myparser.jar という名前の JAR ファイルにパーサ クラスまたはトランスフォーマ クラスを置くには、以下に示すように MANIFEST.MF ファイルを更新します。

    Manifest-Version: 1.0
    Created-By: 1.3.1_01 (Sun Microsystems Inc.)
    Class-Path: lib/xml/myparser.jar

  • パーサ クラスまたはトランスフォーマ クラスを EAR アーカイブ以外の場所に格納する場合は、クラスの入っている JAR ファイルの完全パス名を含むように WebLogic Server CLASSPATH 変数を必ず更新してください。
  •  


    エンタープライズ アプリケーション用の外部エンティティのコンフィグレーション

    DTD などの外部エンティティは、Web から取得するだけでなく、そのローカル コピーを EAR アーカイブまたは展開ディレクトリに格納しておくこともできます。

    エンタープライズ アプリケーション用の外部エンティティをコンフィグレーションするには、以下の手順を実行します。

    1. EAR アーカイブのメイン ディレクトリの下にディレクトリ lib/xml/registry を作成します。

    2. DTD のような外部エンティティをそのディレクトリにコピーします。

    3. weblogic-application.xml ファイルを更新し、<xml> 要素の <entity-mapping> サブ要素を使用して、アプリケーションにより処理される XML ファイルのエンティティ宣言にエンティティの名前をマップします。以下に例を示します。
         <entity-mapping>
    <entity-mapping-name>My Mapping</entity-mapping-name>
    <public-id>-//BEA Systems, Inc.//DTD for cars//EN</public-id>
    <system-id>http://www.bea.com/dtds/car.dtd</system-id>
    <entity-uri>dtds/car.dtd</entity-uri>
    </entity-mapping>

    この例では、car.dtd という DTD のローカル コピーが EAR アーカイブまたは展開ディレクトリのメイン ディレクトリの下の lib/xml/registry/dtds ディレクトリに格納されます。このエンティティのパブリック ID は -//BEA Systems, Inc.//DTD for cars//EN で、システム ID は http://www.bea.com/dtds/car.dtd です。アプリケーションが XML ファイルの解析中に、これらの ID のいずれかを使用しているエンティティ宣言を検出すると、その宣言は car.dtd ファイルに置き換えられます。

    注意: エンティティのローカル コピーをマップする各エンティティ宣言について、<entity-mapping> 要素を指定してください。

     


    エンタープライズ アプリケーション用の外部エンティティ キャッシュのコンフィグレーション

    サーバ起動時、またはエンティティの最初の参照時のいずれかに、EAR アーカイブのメイン ディレクトリを基準にした相対 URL またはパス名で参照される外部エンティティを WebLogic Server がキャッシュするように指定できます。

    外部エンティティをキャッシュすると、リモート アクセス時間が節約されるだけでなく、ネットワークまたは管理サーバのダウンにより XML ドキュメントの解析中に管理サーバにアクセスできなくなった場合には、ローカル バックアップを利用できます。

    キャッシュされたエンティティについて、WebLogic Server が URL または EAR のディレクトリからエンティティを再取得して再キャッシュする間隔(有効期限)をコンフィグレーションできます。

    エンタープライズ アプリケーション用の外部エンティティ キャッシュをコンフィグレーションするには、<entity-mapping> 要素の <when-to-cache> サブ要素と <cache-timeout-interval> サブ要素を使用します。以下に例を示します。

         <entity-mapping>
    <entity-mapping-name>My Mapping</entity-mapping-name>
    <public-id>-//BEA Systems, Inc.//DTD for cars//EN</public-id>
    <system-id>http://www.bea.com/dtds/car.dtd</system-id>
    <entity-uri>dtds/car.dtd</entity-uri>
    <when-to-cache>cache-at-initialization</when-to-cache>
    <cache-timeout-interval>300</cache-timeout-interval>
    </entity-mapping>

    この例では、car.dtd が EAR アーカイブまたは展開ディレクトリのメイン ディレクトリの下の lib/xml/registry/dtds ディレクトリに格納されます。WebLogic Server の最初の起動時に DTD のコピーがメモリにキャッシュされ、以後は、キャッシュされたコピーが 300 秒以上格納されている場合にリフレッシュされます。

     

    ページの先頭 前 次