【问题标题】:Spring not initializing bean(dbunit); what have I missed?Spring没有初始化bean(dbunit);我错过了什么?
【发布时间】:2010-01-29 23:10:15
【问题描述】:

我在使用 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>

注意事项:

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

我是否遗漏了一些明显的东西?我还可以做些什么?我已经在JavaRanch 上问过这个问题,但到目前为止我还没有得到太多帮助。这是一个个人学习项目,所以取得一些进展会很棒:)

【问题讨论】:

    标签: java dbunit stripes


    【解决方案1】:

    你好像忘记在dbUnitBootstrapper中设置一个dataSource属性

    【讨论】:

    • 我已经添加了 ,但这没什么区别
    猜你喜欢
    • 2023-03-02
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多