BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Server > WebLogic XML プログラマーズ ガイド > XML アプリケーション スコーピング |
WebLogic XML プログラマーズ ガイド
|
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>要素のサブ要素を示し、その後の節で各要素について説明します。
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 を指定する要素。 system-id 次のようなエンティティのシステム ID を指定する要素。 entity-uri エンティティの URI を指定する要素。このパスは、EAR アーカイブまたは展開ディレクトリのメイン ディレクトリを基準とする相対パスです。 たとえば、dtds/car.dtd は、メイン EAR アーカイブ(META-INF ディレクトリと同じレベル)に dtds という名前のディレクトリがあり、そこに car.dtd という名前のファイルがあることを示します。 when-to-cache 外部エンティティをキャッシュする時期を指定する要素。有効な値は次のとおりです。
-//BEA Systems, Inc.//DTD for cars//EN.
http://www.bea.com/dtds/car.dtd
デフォルト値は cache-on-reference です。
cache-timeout-interval
キャッシュされた外部エンティティが古くなる(期限切れになる)までの秒数を指定する要素。キャッシュされたコピーがこの期間を超えた場合、WebLogic Server は、EAR アーカイブまたは展開ディレクトリのメイン ディレクトリを基準に指定された相対 URL またはパス名から外部エンティティを再取得します。
このフィールドのデフォルト値は、120 秒です。
エンタープライズ アプリケーション用のパーサまたはトランスフォーマのコンフィグレーション
XML アプリケーションが、WebLogic Server に対してコンフィグレーションされた組み込みパーサまたはトランスフォーマと異なるパーサまたはトランスフォーマを使用するように指定できます。それには、XML アプリケーションの入っている EAR ファイルまたは展開ディレクトリの 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>
この weblogic-application.xml ファイルに対応するアプリケーションでは、SAX スタイル解析には weblogic.xml.babel.jaxp.SAXParserFactoryImpl ファクトリ クラス、DOM スタイル解析には org.apache.xerces.jaxp.DocumentBuilderFactoryImpl ファクトリ クラス、XSLT変換には org.apache.xalan.processor.TransformerFactoryImpl クラスが使用されます。
エンタープライズ アプリケーション用の外部エンティティのコンフィグレーション
DTD などの外部エンティティは、Web から取得するだけでなく、そのローカル コピーを EAR アーカイブまたは展開ディレクトリに格納しておくこともできます。
エンタープライズ アプリケーション用の外部エンティティをコンフィグレーションするには、以下の手順を実行します。
<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>
注意: エンティティのローカル コピーをマップする各エンティティ宣言について、<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 秒以上格納されている場合にリフレッシュされます。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |