[Seasar-user:19433] Re: dataSourceNameはnullあるいは空であってはいけません

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2010年 3月 2日 (火) 20:00:03 JST


小林 (koichik) です.

Date:    Tue, 2 Mar 2010 19:33:09 +0900
From:    吉村 実 <[E-MAIL ADDRESS DELETED]>
To:      <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:19432] Re: dataSourceNameはnullあるいは空であってはいけません

> Tomcat起動時にエラーとなりました。
(略)
> org.seasar.framework.exception.OgnlRuntimeException: [ESSR0073]OGNLで例外が
> 発生しました。理由は[ESSR0046]コンポーネント(dataSourceForOp)が見つかりませ
> ん at file:///C:/eclipse/tomcat5.5/dao_tt.dicon(74)

ということは,dao_tt.dicon の daoMetaDataFactoryForOp は
jdbc.dataSourceForOp を参照しているということなので,
〜DaoFoOp に適用されているインターセプタが
参照している daoMetaDataFactory が 〜ForOp ではない,
ということになりますね.
インターセプタが違うのかな...?

それでは,dao_tt.dicon の S2DaoInterceptor および 
DaoMetaDataFactoryImpl の設定を以下のように変更
してください.

    <component
        name="daoMetaDataFactory"
        class="org.seasar.dao.impl.DaoMetaDataFactoryImpl">
        ...
        <!-- 以下を追加 -->
        <initMethod>
            @[E-MAIL ADDRESS DELETED]("daoMetaDataFactory : " + #self);
        </initMethod>
    </component>

    <component name="interceptor"
        class="org.seasar.dao.pager.PagerS2DaoInterceptorWrapper">
        ...
        <!-- 以下を追加 -->
        <initMethod>
            @[E-MAIL ADDRESS DELETED]("interceptor : " + #self);
        </initMethod>
    </component>

    <component
        name="daoMetaDataFactoryForOp"
        class="org.seasar.dao.impl.DaoMetaDataFactoryImpl">
        ...
        <!-- 以下を追加 -->
        <initMethod>
            @[E-MAIL ADDRESS DELETED]("daoMetaDataFactoryForOp : " + #self);
        </initMethod>
    </component>

    <component name="interceptorForOp"
        class="org.seasar.dao.pager.PagerS2DaoInterceptorWrapper">
        ...
        <!-- 以下を追加 -->
        <initMethod>
            @[E-MAIL ADDRESS DELETED]("interceptorForOp : " + #self);
        </initMethod>
    </component>

起動時にコンソールにそれぞれのオブジェクトの
toString() 文字列 (クラス名@〜) が表示されます.

[Seasar-user:19423] と同じように S2DaoInterceptor に
ブレークポイントを付けて,

this
this の daoMetaDataFactory

を選択したときに Variables (変数) ビューの
下側に表示される toString() された文字列が,
起動時にコンソールに出力された文字列のどれと
一致しているか (あるいはしていないか) を確認
してください.


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