الربيع لا تهيئة الفول (dbunit) ؛ ماذا فاتني؟
سؤال
أنا أتابع بعض الإرشادات في برنامج تعليمي لإعداد Stripes MVC مع تكامل الربيع ، وأحاول دمج DBUnit لتهيئة ديسيبل الخاص بي عند بدء التشغيل ، لذلك لا أضطر إلى إضاعة الوقت يدويًا في كل مرة. لسوء الحظ ، لا يمكنني ربط البرنامج التعليمي باعتباره من كتاب إلكتروني مدفوع.
في web.xml لقد أشرت إلى الربيع
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
في Application Context.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>
أشياء يجب ملاحظة:
- يحتوي مصدر البيانات على نفس التفاصيل
persistence.xml
, ، إذا قمت بإدخال البيانات يدويًا ، فهي تعرض في طلبي ، لذلك يجب أن تكون تفاصيل الاتصال جيدة - لقد وضعت نقاط توقف في بلدي
DBUnitBootstrapper
الفصل ، ولكن هذه لا يتم القبض عليها أبدًا ، مما يؤديني إلى تصديق أن هذه الفاصوليا لم يتم تهيئتها. - ال
testdata.xml
يوجد ملف في المكان الصحيح ، لديّ أبسط كائنات المجال مع معرف وعدد قليلString
صفات - في ال
testdata.xml
, ، إذا قمت بتغيير المعرف من1
إلىabc
أحصل علىnumberFormatException
في إخراج وحدة التحكم ، لذلك يبدو أن التطبيق يقرأ ملف البيانات ويحاول إدخاله
هل فاتني شيء واضح؟ ماذا يمكنني أن أفعل؟ لقد طرحت هذا السؤال على جافارانش لكنني لم أتمكن من الحصول على الكثير من المساعدة حتى الآن. هذا لمشروع التعلم الشخصي ، لذلك سيكون من الرائع إحراز بعض التقدم :)
المحلول
يبدو أنك نسيت تعيين أ dataSource
الممتلكات في dbUnitBootstrapper
لا تنتمي إلى StackOverflow