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