Spring не инициализирует боб (dbunit); что я пропустил? - PullRequest
1 голос
/ 30 января 2010

Я следую некоторым рекомендациям в руководстве по настройке Stripes MVC с интеграцией Spring, и я пытаюсь интегрировать DBUnit, чтобы инициализировать мою БД при запуске, чтобы не тратить время на ручную вставку данных каждый раз. К сожалению, я не могу связать учебник с платной электронной книгой.

В моем web.xml я ссылался на Spring

<listener>
        <listener-class>
    org.springframework.web.context.ContextLoaderListener
        </listener-class>
</listener>

В моем applicationContext.xml я настроил следующие компоненты

    <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, но они никогда не обнаруживаются, что приводит меня к мысли, что этот компонент не инициализируется.
  3. файл testdata.xml существует в правильном месте, у меня самые простые доменные объекты с идентификатором и несколькими String атрибутами
  4. В testdata.xml, если я изменяю идентификатор с 1 на abc, я получаю numberFormatException в выводе консоли, так что звучит так, как будто приложение читает файл данных и пытается вставить

Я что-то упустил очевидное? Что еще я могу сделать? Я задавал этот вопрос на JavaRanch , но пока мне не удалось получить большую помощь. Это для личного учебного проекта, поэтому было бы здорово добиться некоторого прогресса:)

1 Ответ

0 голосов
/ 30 января 2010

Кажется, вы забыли установить свойство dataSource в dbUnitBootstrapper

...