[Seasar-user:8158] Re: Seasar 2 起動時にDB接続について

Yasuo Higa [E-MAIL ADDRESS DELETED]
2007年 6月 7日 (木) 15:29:22 JST


ひがです。

> お世話になっております。
> 松崎美姫です。
> 
> Seasar 2 の起動時の処理について質問をさせていただきます。
> 起動時に、特定のプログラムを起動させてDBの値を取得し、
> Contextに保持しようと考えて思っております。
> 
> メーリングリストとの過去ログを検索させていただくと
> 同時に、ドキュメントも読ませていただきました。
> 
> 起動時に、特定のプログラムを起動させるには、
> dicon ファイルを用意し、app.dicon に追加すればよいということだったので、
> 早速テストをさせていただきました。
> 起動時に、正常に起動することを確認し、今度は、
> データベースを情報を取得しようと思い、プロパティにDaoを
> 定義し、autoBindingされるかどうかを確認したところ、
> Bindされずに、下記のログが出力されました。
> dao がBindされていないので、結果が、NullPointerExceptionに
> なってしまっていると思うのですが、なぜ、Bindされないか分りません。
> 
前のAjaxのときにDaoが設定されないのと同じ原因なんですが、
diconファイルに設定されているコンポーネントは、
HOT deploy対象のコンポーネントを見つけることができません。

一番手軽なのは、app.diconに登録したコンポーネントから
利用するコンポーネントは、app.diconに記述してしまうことです。

そのような利用には、S2JDBCがお手軽です。
http://s2container.seasar.org/ja/s2jdbc.html

<component name="selectBeanListHandler"
    class="org.seasar.extension.jdbc.impl.BasicSelectHandler">
    <property name="sql">
        "SELECT empno, ename, job, mgr, hiredate, sal, comm, 
deptno FROM emp"
    </property>
    <property name="resultSetHandler">
        <component class="org.seasar.extension.jdbc.impl.
BeanListResultSetHandler">
            <arg>@[E-MAIL ADDRESS DELETED]</arg>
        </component>
    </property>
</component>
<component class="...MySingleton">
    <property name="selectBeanListHandler">
        selectBeanListHandler
    </property>
</component>

のように記述するとOKです。

よろしくお願いします。

--
Yasuo Higa
[E-MAIL ADDRESS DELETED]



Seasar-user メーリングリストの案内