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

松崎美姫 [E-MAIL ADDRESS DELETED]
2007年 6月 7日 (木) 15:00:02 JST


お世話になっております。
松崎美姫です。

Seasar 2 の起動時の処理について質問をさせていただきます。
起動時に、特定のプログラムを起動させてDBの値を取得し、
Contextに保持しようと考えて思っております。

メーリングリストとの過去ログを検索させていただくと
同時に、ドキュメントも読ませていただきました。

起動時に、特定のプログラムを起動させるには、
dicon ファイルを用意し、app.dicon に追加すればよいということだったので、
早速テストをさせていただきました。
起動時に、正常に起動することを確認し、今度は、
データベースを情報を取得しようと思い、プロパティにDaoを
定義し、autoBindingされるかどうかを確認したところ、
Bindされずに、下記のログが出力されました。
dao がBindされていないので、結果が、NullPointerExceptionに
なってしまっていると思うのですが、なぜ、Bindされないか分りません。

ドキュメントもおって確認させていただこうと思いますが、
ご教授いただけると幸いです。

質問ばかり、申し訳ございませんが、よろしくお願いいたします。

松崎美姫 (miki ♪)

Seasar 2.4.13
Teeeda 1.0.7
S2Dao 1.43


■ トレースログ =========================================
WARN  2007-06-07 14:44:27,203 [main]
net.miki.service.ContextSaveのプロパティ(testDao)が見つからないので設定をスキップします
2007/06/07 14:44:27 org.apache.catalina.core.ApplicationContext log
致命的: StandardWrapper.Throwable
java.lang.NullPointerException
	at net.miki.service.ContextSave.init(ContextSave.java:19)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:49)


■ app.dicon ==========================================
<components>
	<include path="convention.dicon"/>
	<include path="aop.dicon"/>
	<include path="app_aop.dicon"/>
	<include path="teedaExtension.dicon"/>
	<include path="dao.dicon"/>
	<include path="dxo.dicon"/>
	<include path="start.dicon"/>
</components>

■ start.dicon ==========================================
<components>
	<component class="net.miki.service.ContextSave">
	    <initMethod name="init"/>
	</component>
</components>

■ ContextSave =========================================
package net.miki.service;
import net.miki.dao.TestDao;

public class ContextSave {
	TestDao testDao;
	
	public TestDao getTestDao() {
		return testDao;
	}
	public void setTestDao(TestDao testDao) {
		this.testDao = testDao;
	}
	public void init() {
                                int cnt = getTestDao().selectDx();
	}
}



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