[Seasar-user:7523] SMART deploy と app.dicon でのコンポーネントについて

o.h. [E-MAIL ADDRESS DELETED]
2007年 5月 7日 (月) 18:23:52 JST


お世話になっております.長谷川です.

S2Dao の設定を SMART deploy に任せて、それ以外のコンポーネントを
独自に app.dicon に記述するような構成でアプリケーションを作成して
います.

構成の内容なのですが

app.dicon

<components>
  <include path="aop.dicon"/>
  <include path="dxo.dicon"/>
  <include path="dao.dicon"/>
  <component name="hoge" class="hoge.Hoge"/>
</components>

といった形の定義をしていまして(適宜修正してますが)、上記の
"hoge" コンポーネント内で SMART deploy から登録されている dao
を使用するために

hoge.Hoge.java
...

public void setDao(SomeDao dao) {
...
}
....

といった setter を定義してます.

この状態で、コンポーネント hoge を取得しようとすると
TooManyRegistrationRuntimeException が発生します.

もちろん hoge.Hoge#setDao を取り除けば問題なく動作します.

なんとなく SMART deploy 側と app.dicon 側の両方から登録しようと
しているのかなと想像はしているのですが、回避方法がわかりません.

最悪 hoge.Hoge で
SingletonS2ContainerFactory.getContainer().getComponent(SomeDao.class);
とかすれば回避はできるのですが...

実際問題、上記の現象は設定の不備によるものなのでしょうか.
dicon の記述のみで回避可能なものなのでしょうか.
#以前に、こちらで似たような質問があったような気がしたのですが
#見つけられませんでした

以上、よろしくお願いいたします.
-- 
_/_/
_/_/ mailto: [E-MAIL ADDRESS DELETED]
_/_/ (deprecated: [E-MAIL ADDRESS DELETED])
_/_/



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