[Seasar-user:7538] Re: SMART deploy と app.dicon でのコンポーネントについて
    o.h.
    [E-MAIL ADDRESS DELETED]
       
    2007年 5月  8日 (火) 14:09:18 JST
    
    
  
長谷川です.
いろいろやっていますが、どうもちんぷんかんぷんです.
状況を整理したいと思います.
クラス階層は以下のようになっています
s2.dao
  COMTableDao
s2.dao.bean
  COMTableBean
s2.resource
  COMTableBundleSeed
ルートパッケージは s2 で、BundleSeed 用に独自 Creator を追加
しています.
COMTableBundleSeed は setDao(COMTableDao) を持ちます.
で、テスト側の構成ですが.
sample
  Foo
  FooTest (extends S2TestCase)
となっています.
Foo は setDao(COMTableDao) を持ちます.
この構成でテストを実行しています.
以下いろいろテストしてみた結果です.登録メッセージの回数も併記します
1.
COMTableBundleSeed : SMART depoloy
Foo : app.dicon
FooTest がわでの宣言
・Foo のみ -> OK
 (COMTableDao 4回登録)
・COMSTableBundleSeed のみ -> NG
 (COMTableDao 4回登録、COMSTableBundleSeed 1回登録)
・Foo + COMTableDao -> NG
 (COMTableDao 4回登録)
2.
COMTableBundleSeed : app.dicon
Foo : app.dicon
FooTest がわでの宣言
・Foo のみ -> OK
 (COMTableDao 8回登録)
・COMTableBundleSeed のみ -> OK
 (COMTableDao 8回登録)
・Foo + COMTableDao -> NG
 (COMTableDao 8回登録)
・COMTableBundleSeed + COMTableDao -> NG
 (COMTableDao 8回登録)
3.
COMTableBundleSeed : 登録なし
Foo : app.dicon
FooTest がわでの宣言
・Foo のみ -> OK
 (COMTableDao 4回登録)
・Foo + COMTableDao -> NG
 (COMTableDao 4回登録)
4.
COMTableBundleSeed : SMART deploy
Foo : 登録無し
FooTest がわでの宣言
・COMTableBundleSeed のみ -> OK
 (COMTableDao 1回登録、COMTableBundleSeed 1回登録)
・COMTableBundleSeed + COMTableDao -> OK
 (COMTableDao 1回登録、COMTableBundleSeed 1回登録)
どうも、app.dicon に書いた場合に Dao の登録メッセージが複数回出力
されるようです.また、その場合でも必ずしも例外になるわけではない
です.
SMART deploy と app.dicon での定義が交錯している場合に例外が発生
しているようにも見えます.
Koichi Kobayashi wrote:
>> [org.seasar.framework.container.util.S2ContainerUtil] - クラス
>> (test.s2.dao.SomeDao[SomeDao])のコンポーネント定義を登録します
> 
> と表示されるきっかけを作ったコンポーネントが
> 4 つあるはずです.
> それらの setter についても確認願います.
>
クラス自体は最初に記述したもの以外では、Dao 用の Bean が2クラス
ほど定義してあります.ただし Dao はまだ作成していません.
もちろん、これらのクラスの setter に Dao を引数とするものはありません.
> んー,自分が想像しているのと違う状況なのかも
> しれません.
> 念のため,本当に動いている S2 のバージョンを
> 確認いただけると幸いです.
> 
Eclipse 上からテストケースを動かしていますが、参照しているライブラリ
は前回記述したもので間違いありません.
> それから,デバッガ上でこの現象を再現することは
> 可能でしょうか?
> 
可能です.
#どこを調べるのかは見当がつきませんけど(^^;
以上.
-- 
_/_/
_/_/ mailto: [E-MAIL ADDRESS DELETED]
_/_/ (deprecated: [E-MAIL ADDRESS DELETED])
_/_/
    
    
Seasar-user メーリングリストの案内