我在使用 Spring 集成设置 Stripes MVC 的教程中遵循了一些指南,并且我正在尝试集成 DBUnit 以在启动时初始化我的数据库,这样我就不必每次都浪费时间手动插入数据。不幸的是,我无法将教程链接为付费电子书。
在我的 web.xml 中,我引用了 Spring
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
在我的 applicationContext.xml 中,我设置了以下 bean
<bean id="dbUnitBootstrapper" class="com.jameselsey.salestracker.testing.DBUnitBootstrapper"
init-method="execute">
<property name="enabled" value="true"/>
<property name="operations">
<list>
<bean class="org.dbunit.ant.Operation">
<property name="type" value="CLEAN_INSERT"/>
<property name="src" value="classpath:testdata.xml"/>
</bean>
</list>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="url" value="jdbc:derby://localhost:1527/salestracker"/>
<property name="username" value="admin"/>
<property name="password" value="admin"/>
</bean>
注意事项:
- 数据源的详细信息与我的相同
persistence.xml
,如果我手动插入数据,它会显示在我的应用程序中,因此连接详细信息应该没问题 - 我在
DBUnitBootstrapper
课堂上设置了断点,但这些断点从未被捕获,这让我相信这个 bean 没有被初始化。 - 该
testdata.xml
文件存在于正确的位置,我拥有最简单的域对象,具有 ID 和一些String
属性 - 在 中
testdata.xml
,如果我将 ID 从更改为1
,abc
我会numberFormatException
在控制台输出中得到 a ,所以听起来应用程序正在读取数据文件并尝试插入
我错过了什么明显的东西吗?我还可以做些什么?我在JavaRanch上问过这个问题,但到目前为止我还没有得到太多帮助。这是针对个人学习项目的,因此取得一些进展会很棒:)