キ ャ ッ シ ュ さ れた外部エンテ ィ テ ィ が古 く な る ( 期限切れにな る ) までの秒数を 指定する要素。 キ ャ ッ シ ュ さ れた コ ピーが こ の期間を超えた場合、 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 ク ラ スが使用さ れます。
2.
パーサ ク ラ ス ま たは ト ラ ン ス フ ォーマ ク ラ ス を EAR アーカ イ ブに対し て ローカルにするには、 対象の ク ラ スの入ってい る JAR フ ァ イ ルを EAR フ ァ イルの任意の場所に置き、META-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
3.
パーサ ク ラ ス ま たは ト ラ ン ス フ ォーマ ク ラ ス を 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 秒以上格納さ れてい る場合に リ フ レ ッ シ ュ さ れます。
使い方
以下の節では、 WebLogic XML Streaming API に よ り XML ド キ ュ メ ン ト の解析 と 生成を行 う 方法について説明し ます。
4-1
ページの 「WebLogic XML Streaming API の概要」
4-3 ページの 「WebLogic XML Streaming API の Javadoc」
4-3 ページの 「XML ド キ ュ メ ン ト の解析 : 一般的手順」
4-21
ページの 「新し い XML ド キ ュ メ ン ト の生成 : 一般的手順」WebLogic XML Streaming API の概要
WebLogic XML Streaming API
は、XML ド キ ュ メ ン ト の解析 と 生成を簡単に直感 的に行え る方法を提供し ます。 SAX API に似ていますが、 複雑な XML ド キ ュ メ ン ト を処理する際の煩雑さ の原因にな る SAX イベン ト ハン ド ラ を書 く 必要はなく 、 手順の流れに従っ て XML ド キ ュ メ ン ト を処理でき ます。 つま り 、
Streaming API では、 SAX API よ り 解析を綿密に制御でき ます。
SAX
を使用し て XML ド キ ュ メ ン ト を解析する場合、 プ ロ グ ラ ムでは、 イ ベン ト 発生時に解析を リ ス ンする イベン ト リ スナを作成し、 特定の イベン ト を請求 する のではな く 、 イ ベン ト に対し て対応する必要があ り ます。 一方、 StreamingAPI
を使用する場合は、 XML ド キ ュ メ ン ト を手順の流れに沿っ て処理する こ と 、 特定の タ イ プの イベン ト ( 要素の開始な ど ) を請求する こ と 、 要素の属性を繰 り 返し処理する こ と 、 ドキ ュ メ ン ト の先頭を ス キ ッ プする こ と 、 任意の時点で処理 を停止する こ と 、 特定の要素のサブ要素を取得する こ と 、 指定どお り に要素を フ ィ ル タする こ と がで き ます。 イ ベン ト に対応するのではな く 、 イベン ト を請求 する ので、 Streaming API を使用する方法は、 「プル解析」 と 呼ばれる こ と も あ り ます。Streaming API
に よ り 、 オペレーテ ィ ング シ ス テム上の XML フ ァ イル、 DOM ツ リ ー、 SAX イベン ト のセ ッ ト な ど、 多 く の タ イ プの XML ド キ ュ メ ン ト を解析 で き ます。 こ れ ら の XML ド キ ュ メ ン ト を イベン ト のス ト リ ーム、 すなわち XMLInputStream、 に変換し、 こ のス ト リ ーム を順に処理し て、 要素の開始、 ド キ ュ メ ン ト の終了な どの イ ベン ト を必要に応じ て ス タ ッ ク か ら取得し ます。WebLogic Streaming API
は、 デフ ォル ト パーサ と し て WebLogic FastParser を使 用し ます。Streaming API
に よ る XML ド キ ュ メ ン ト 解析の詳細なサンプルについては、WL_HOME\samples\server\src\examples\xml\orderParserデ ィ レ ク ト リ を 参照し て く だ さ い。WL_HOME
は、 最上位 WebLogic Platform デ ィ レ ク ト リ です。
次の表で、 WebLogic Streaming API の主な イ ン タ フ ェース と ク ラ スについて説明 し ます。
表4-1 XML Streaming API のイ ン タ フ ェース と ク ラス イ ン タ フ ェースまたはク ラス 説明
XMLInputStreamFactory
XML
ド キ ュ メ ン ト 解析用のXMLInputStream オブジ ェ ク ト を作成する ために使用 さ れ る フ ァ ク ト リ 。XMLInputStream イ ベン ト の入力ス ト リ ーム を入れ る ために使用 さ れ る イ ン タ フ ェース。
BufferedXMLInputStream XMLInputStreamイ ン タ フ ェース で ス ト リ ーム のマーキ ン グ と リ セ ッ ト を行え る よ う にす る た めの拡張。
XMLOutputStreamFactory
XML
ド キ ュ メ ン ト 生成用のXMLOutputStream オブジ ェ ク ト を作成する ために使用 さ れ る フ ァ ク ト リ 。XMLOutputStream イ ベ ン ト を書き 込むために使用 さ れ る イ ン タ フ ェース。
ElementFactory こ の