gpt4 book ai didi

java - Spring未初始化bean(dbunit);我错过了什么?

转载 作者:行者123 更新时间:2023-12-01 05:58:11 26 4
gpt4 key购买 nike

我正在遵循教程中的一些准则来设置 Stripes MVC 与 Spring 集成,并且我正在尝试集成 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>

注意事项:

  1. 数据源与我的 persistence.xml 具有相同的详细信息,如果我手动插入数据,它会显示在我的应用程序中,因此连接详细信息应该没问题
  2. 我在 DBUnitBootstrapper 类中设置了断点,但这些断点从未被捕获,导致我相信该 bean 未初始化。
  3. testdata.xml 文件存在于正确的位置,我有最简单的域对象,带有 ID 和一些 String 属性
  4. testdata.xml 中,如果我将 ID 从 1 更改为 abc,我会收到 numberFormatException在控制台输出中,所以听起来应用程序正在读取数据文件并尝试插入

我错过了一些明显的事情吗?我还可以做些什么?我在JavaRanch上问过这个问题但到目前为止我还没有得到太多帮助。这是一个个人学习项目,因此取得一些进展会很棒:)

最佳答案

您似乎忘记在 dbUnitBootstrapper 中设置 dataSource 属性

关于java - Spring未初始化bean(dbunit);我错过了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2165862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com