[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 メーリングリストの案内