[Seasar-user:3999] Re: 2つのプロジェクト間でのDIが行われない
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2006年 6月 30日 (金) 01:30:16 JST
小林 (koichik) です.
Date: Thu, 29 Jun 2006 22:48:13 +0900
From: "吉岡 武志/インフォセンス" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:3997] 2つのプロジェクト間でのDIが行われない
> mainProject と testProjectという2つのプロジェクトを作成し
> testProjectのビルドパスにmainProjectを追加している環境を構築しています。
ということは,class ファイルの出力フォルダも二つあることに
なりますね.
FileSystemComponentAutoRegister は,それ自身が定義された
dicon ファイルの存在するディレクトリを基点として .class
ファイルを探し,コンテナに登録します.
> [diconの定義]
> <component class
> ="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
おそらく,この dicon ファイルが mainProject の方にあるのでは
ないでしょうか?
自動登録するクラスが全て testProject の方にあるなら,
dicon ファイルを testProject の方に移動すれば解決すると思います.
自動登録するクラスが mainProject と testProject の両方にあるなら,
FileSystemComponentAutoRegister に代えて ComponentAutoRegister を
使って,
<component class
="org.seasar.framework.container.autoregister.ComponentAutoRegister">
<property name="autoNaming">
<component class
="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
</property>
<initMethod name="addClassPattern">
<arg>"jp.co.sample.dao"</arg>
<arg>".*Impl"</arg>
</initMethod>
<initMethod name="addReferenceClass">
<arg>@mainProjectにあるクラス@class</arg>
</initMethod>
<initMethod name="addReferenceClass">
<arg>@testProjectにあるクラス@class</arg>
</initMethod>
</component>
とすることで,mainProject と testProject の両方からクラスが
自動登録されるようになるはずです.
--
<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 メーリングリストの案内