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(); } } }
こうやって、はまらなくて良いところではまってるなぁ。。。