我將Eclipse配置爲使用外部Maven實例。儘管如此,我有一個從命令行運行良好的集成測試,但在Eclipse中失敗。該錯誤是一類Spring應用程序上下文的bean錯誤:PropertyPlaceholderConfigurer可以從Maven命令行運行,但不能從Eclipse運行?
Cannot convert value of type [java.lang.String] to required type
的罪魁禍首嗎,設置使用提供一個PropertyPlaceholderConfigurer屬性值的bean。
<!-- property settings for non-JNDI database connections -->
<bean id="placeholderConfigUuid" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="location" value="classpath:database.properties" />
<property name="placeholderPrefix" value="$DS{" />
</bean>
我知道豆失敗,因爲它,當我與它的工作原理一個靜態值替換$ {DS} hibernate.dialect出現在堆棧跟蹤和感覺。
編輯:這裏就是屬性值用於:
<bean id="myTestLocalEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="myapp-core" />
.......ommitted for brevity.......
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<!-- The following use the PropertyPlaceholderConfigurer but it doesn't work in Eclipse -->
<property name="database" value="$DS{hibernate.database}" />
<property name="databasePlatform" value="$DS{hibernate.dialect}" />
</bean>
</property>
</bean>
我有兩個問題:
1)由於m2eclipse的是使用相同的Maven設置爲命令行,爲什麼一個工作另一個失敗? 2)如何解決這個問題?我非常喜歡能夠在需要時從Eclipse內部運行單個jUnit測試。
是的 - 我正在使用Maven 2(2.2.1)。該測試是一個真正的「集成」測試。在Eclipse中運行它時,我稱它爲「單元」測試,因爲這是Eclipses使用的唯一術語(它不區分)。 「驚訝」是一個偉大的話。看到模具以這種方式行爲是非常令人不安的。如果我不能相信Eclipse vs Maven命令行,那麼這真的很糟糕。 – HDave 2010-06-10 13:10:10