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