[Seasar-user:8736] Re: Churaで作成したアプリをJBossサーバーにデプロイする。

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 6月 27日 (水) 21:00:48 JST


小林 (koichik) です.

Date:    Wed, 27 Jun 2007 20:30:12 +0900
From:    Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:8735] Re: Churaで作成したアプリをJBossサーバーにデプロイする。

> xmlParserAPIs-2.6.2.jar に含まれているクラスは
> rt.jar に入っていてブートストラップクラスローダに
> ロードされるはずなので,xmlParserAPIs-2.6.2.jar の
> クラスがロードされることはないはず.
> でもでも,もしそうなら Java5 の SAXParserFactory には
> setXIncludeAware(boolean) メソッドがあるので
> http://apache.org/xml/features/xinclude フィーチャを
> 設定しには行かないはずなのですが...
> この辺,謎だなぁ.

JAXP 1.3 に対応していない Xerces 2.6.2 で
SAXParserFactory#setXIncludeAware(boolean) を
呼び出すと UnsupportedOperationException が
スローされてたようです.
そうすると,その例外を無視して
http://apache.org/xml/features/xinclude フィーチャを
設定しに行くのですが,SAXParserFactory#setFuture() の
仕様ではサポートしてないフィーチャの場合,その時点で
例外がスローされることになっていて,その場合は
例外を無視するだけなのですが,Xerces 2.6.2 はその時点では
例外をスローせず,ずっと後の SAXParserFactory#newSAXParser() で
例外がスローされるので,今回の現象になるわけですね.

Teeda や S2JSF,Mayaa,それに Tomcat 5.0 を使った場合や
Tomcto 5.5 を J2SE1.4 で使う場合など,Xerces 2.6.2 は
広く使われているので,それで問題が生じるフィーチャを
設定するのはやめることにしようと思います.

J2SE1.4 と Xerces 2.7 以降との組み合わせでも XInclude が
使えなくなってしまいますが,そういう組み合わせで使うことは
まれだろうということで...



-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




Seasar-user メーリングリストの案内