[Seasar-user:16417] Re: [s2-container, s2axis2] SMARTDeploy対応

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 12月 1日 (月) 04:15:07 JST


小林 (koichik) です.

Date:    Sun, 30 Nov 2008 12:48:05 +0900
From:    "Mitsutaka Sato" <[E-MAIL ADDRESS DELETED]>
To:      seasar-user <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:16416] Re: [s2-container, s2axis2] SMARTDeploy対応

> テストケースをcooldeployで動かしてみても状況は変わりませんでした。
> エラー内容は
> 
> org.seasar.framework.container.IllegalAutoBindingPropertyRuntimeException:
> [ESSR0080]クラス(com.hoge.soap.services.impl.DealServiceImpl$$EnhancedByS2AOP$$1bb9696)のプロパティ(apiLogic)の自動設定に失敗しました
> 
> cooldeploy時のログで
> 
> 2008-11-30 12:43:22.312 [DEBUG][main][S2ContainerUtil]
> クラス(com.hoge.soap.logic.impl.ApiLogicImpl[apiLogic])のコンポーネント定義を登録します
> 
> と出ているので問題なくコンポーネントは登録されているようなのですが。。。

S2(Framework|Tiger)?TestCase のデフォルトでは,
dicon ファイルに関連づけられていない独自の
ルートコンテナが存在し,setUp() メソッドで 
include("app.dicon") などとすると,それは
ルートコンテナの子コンテナとなります.

SMART deploy で自動登録されるコンポーネントは
ルートコンテナに登録されるため,子供のコンテナ
(app.dicon に定義されたコンポーネント) からは
自動登録されたコンポーネントを参照することは
できません.

テストクラスで getRootDicon() メソッドをオーバー
ライドし,"app.dicon" を返すようにすれば
app.dicon を読み込んだコンテナがルートとなります.


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