[Seasar-user:17004] Re: [S2Unit] テスト実行時にNullPointerException

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2009年 2月 26日 (木) 16:30:59 JST


小林 (koichik) です.

Date:    Wed, 25 Feb 2009 15:46:24 +0900 (JST)
From:    [E-MAIL ADDRESS DELETED]
To:      seasar-user <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:17002] Re: [S2Unit] テスト実行時にNullPointerException

> ただ、一点気になるのは・・・コンテナ生成時のコンソールに表示された
> warningです。
> 
> WARN  2009-02-25 15:31:13,537 [main] flex.commons.creator.JdbcCreatorの引数(interface org.seasar.framework.container.InstanceDef)が見つからないのでnullを設定します
> 
> creator.diconには下記の設定があります。
> 
>     <!-- カスタム設定 -->
>     <!-- S2JDBCコンポーネントの登録 -->
>     <component class="flex.commons.creator.JdbcCreator" >
>         <initMethod name="setInstanceDef">
>             @[E-MAIL ADDRESS DELETED]
>         </initMethod>           
>     </component>
> 
> これはHelloS2BlazeDSというサンプルプログラムのcreatorをそのまま
> flex.samples.creator.JdbcCreator
> から
> flex.commons.creator.JdbcCreator
> に変更して使っているものなのですが。。。

だとしたら,setInstanceDef() の引数は
InstanceDef 型のはずですが,
[E-MAIL ADDRESS DELETED] は String なので
型が合いません.

もし dicon で設定するなら <initMethod> ではなく
<property> を使って,

<property name="instanceDef">
  @[E-MAIL ADDRESS DELETED]
</property>

としてください.

ただし,この場合は dicon で設定しなくても,
flex.commons.creator.JdbcCreator のコンストラクタで

        setInstanceDef(InstanceDefFactory.PROTOTYPE);

となっているのを

        setInstanceDef(InstanceDefFactory.SINGLETON);

にすればいいのではないでしょうか.


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