[Seasar-user:17732] Re: 起動時のインスタンス化について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2009年 6月 12日 (金) 15:30:28 JST


小林 (koichik) です.

Date:    Fri, 12 Jun 2009 11:46:52 +0900
From:    吉村 実 <[E-MAIL ADDRESS DELETED]>
To:      <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:17727] 起動時のインスタンス化について

> Common.diconで
> <component name="userInfo" class="jp.go.XXXX.common.UserInfo"
> instance="session">
> 	<property name="navigateService">navigate.navigateService</property>
> </component>
> 
> としているとき、
> “UserInfo”がインスタンス化されセッションに格納されるものと
> 思っているのですが、合っていますでしょうか?

タイトルに「起動時の」とありますが,それを含めるなら
違います.

Seasar2 の起動時というか初期化時には,まだ
HttpSession が存在しないため,コンポーネントは
インスタンス化されません.

> ログイン画面表示のActionで、
> UserInfoをinitializeする処理をしており、
> 以前の環境(2.3)では問題なかったのですが、
> 現在の環境(2.4)ですと、UserInfoがnullで、
> ヌルポとなり落ちてしまいます。

Action はどこに定義していますか?
app.dicon に定義しているか,SMART deploy で
自答登録されているなら UserInfo が DI される
はずですが,app.dicon からインクルードされている
別のdicon に定義されているなら,その dicon で
Common.dicon をインクルードしない限り不可視です.
# それは 2.3 でも同じです.

Seasar2 の dicon ファイルとコンポーネントの
スコープの関係は以下を参照してください.

http://s2container.seasar.org/2.4/s2-framework/ja/apidocs/org/seasar/framework/container/S2Container.html


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