[Seasar-user:8447] Re: [S2] XIncludeできません
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 6月 18日 (月) 23:30:34 JST
小林 (koichik) です.
Date: Mon, 18 Jun 2007 22:45:34 +0900
From: 松崎 学 <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:8446] Re: [S2] XIncludeできません
> xercesImpl-2.6.2.jarを配置して、javax.xml.parsers.SAXParserFactoryを
> 作成しても結果は同じでした。
それは不思議ですね.
XInclude されていないというのはどのように判断してますか?
例外の発生状況などはどうなったのでしょうか?
ビルドによって WEB-INF/classes の下に
META-INF/services/javax.xml.parsers.SAXParserFactory
があるはずですが,存在しているでしょうか?
> Java5を使っているので、Xercesは不要なのではと思って外してみました。
> Xerces2.6.2に強く依存するのであれば、
> TeedaではXIncludeは使えないのでしょうか?
Teeda は Xerces2.6.2 を直接使いますが,S2 は JAXP を
通して XML パーザを使用します.
JAXP が使用するパーザは
META-INF/services/javax.xml.parsers.SAXParserFactory
で変更することができます.
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/xml/parsers/SAXParserFactory.html#newInstance()
これによって,JAXP では Xerces 2.6.2 ではなく,Java5 に
バンドルされている XInclude 対応の Xerces が使われるように
なります.
# S2 と Teeda では異なるパーザを使うことになります.
で,元のメール [Seasar-user:8444] を見直してみたのですが,
> > ・app.dicon
> > <xi:include href="/convention.dicon"/>
> > <xi:include href="/aop.dicon"/>
> > <xi:include href="/app_aop.dicon"/>
> > <xi:include href="/teedaExtension.dicon"/>
> > <xi:include href="/dao.dicon"/>
> > <xi:include href="/dxo.dicon"/>
> > <xi:include href="/dbsession.dicon"/>
これらは XInclude にする必要はないですね.
> > <!-- ■■■■ ValidatorにDIしたいコンポーネント ■■■■ -->
> > <xi:include href="/hoge/allValidatorLabels.dicon"/>
Validator「に」allValidatorLabels「を」DI
したいのでしょうか?
あるいは,
Validator「を」allValidatorLabels「に」DI
したいのでしょうか?
前者なら XInclude ではなく,<include> で構いません.
後者なら allValidatorLabels.dicon は XInclude にする
必要があります.
おそらく前者だと思うので,XInclude は必要ないのでは
ないかと思います.
っていうか,allValidatorLabels は HashMap ですか...
Map は型による自動バインディングの対象ではないので,
Validator に allValidatorLabels を DI するなら,
Validator は正確に setAllValidatorLabels(Map) という
名前のメソッドを持つ必要があります.
微妙に違っていたりすると DI されないのでメソッド名と
コンポーネント名をチェックしてみてください.
--
<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 メーリングリストの案内