S2Daoのデータソース
S2の続きです。

- 作者: 須賀幸次,木村聡,西川麗,高安厚思,白井博章,椎野峻輔,岡薫,藤村浩士,ひがやすを
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/02/25
- メディア: 大型本
- 購入: 7人 クリック: 51回
- この商品を含むブログ (60件) を見る
org.seasar.framework.exception.OgnlRuntimeException: [ESSR0073]OGNLで例外が発生しました。理由はognl.OgnlException: Could not get static field class from class org.seasar.dao.impl.ClobTest [java.lang.ClassNotFoundException: org.seasar.dao.impl.ClobTest]
が発生。
んー。。。org.seasar.dao.impl.ClobTest何て作ってないし、S2DaoのプロジェクトをEclipseにインポートし、含まれているサンプルはちゃんと動作するし。。。
で、調べてみると、j2ee.diconにデータソース情報が書かれていることが判明。後で見たら、コネクションプーリングのところに書いてあった。。。orz
とりあえず、
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"org.hsqldb.jdbcDriver"
</property>
<property name="URL">
"jdbc:hsqldb:hsql://localhost:9001"
<!--
"jdbc:hsqldb:file:"
+ @org.seasar.framework.util.ResourceUtil@getBuildDir(@org.seasar.dao.impl.ClobTest@class).getCanonicalPath()
+ "/data/demo"
-->
</property>
<property name="user">"sa"</property>
<property name="password">""</property>
</component>とすると動作しました。ホッ。。。ちなみに、j2ee.diconはS2Dao付属のものを使ってます。
ついでに、「実際的な例」も次のクライアントをでっち上げることで、動作を確認できました。
package test;
import java.util.List;
import org.seasar.framework.container.S2Container;
import org.seasar.framework.container.factory.S2ContainerFactory;
import dao.StudentDao;
public class S2DaoClient {
private static final String PATH = "student.dao.dicon";
public static void main(String[] args) {
S2Container container = S2ContainerFactory.create(PATH);
container.init();
try {
StudentDao dao = (StudentDao) container
.getComponent(StudentDao.class);
List students = dao.findAllStudent();
for (int i = 0; i < students.size(); ++i) {
System.out.println(students.get(i));
}
} finally {
container.destroy();
}
}
}こうやって、はまらなくて良いところではまってるなぁ。。。