[Seasar-user:8449] Re: [S2] XIncludeできません

松崎 学 [E-MAIL ADDRESS DELETED]
2007年 6月 19日 (火) 09:00:23 JST


小林さん

松崎です。お世話になります。

> それは不思議ですね.
> XInclude されていないというのはどのように判断してますか?
> 例外の発生状況などはどうなったのでしょうか?
XIncludeにすると[Seasar-user:8444]の例外が画面に表示されて、
画面が全く動きません。。。
「500 Internal Server Error」の状態です。

> ビルドによって WEB-INF/classes の下に
> META-INF/services/javax.xml.parsers.SAXParserFactory
> があるはずですが,存在しているでしょうか?
SAXParserFactoryは存在しています。

> Validator「に」allValidatorLabels「を」DI 
> したいのでしょうか?
前者です。
setAllValidatorLabels(Map)のメソッドはあるのですが、
DIしてくれないのです。。。

他に考えられる原因はありませんでしょうか?

以上、よろしくお願い致します。



On Mon, 18 Jun 2007 23:30:34 +0900
Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:

> 小林 (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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user




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