我将Eclipse配置为使用外部maven实例。尽管如此,我有一个从命令行运行良好的集成测试,但是在Eclipse中失败了。该错误是类Spring应用程序上下文bean错误:
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>
我知道哪个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测试。
答案 0 :(得分:2)
alt text http://www.imagebanana.com/img/rwd919ek/screenshot_008.png
答案 1 :(得分:0)
你正在使用M2Eclipse(最新版本?)你在Eclipse中使用Maven 3,但我假设你在命令行上使用Maven 2(2.2.1?)...另一方面你是说你的“集成测试”是在命令行上运行的(构建一个环境等),但是你想从Eclipse中运行“单元测试”...单元测试不同于集成测试......而且我我并不感到惊讶你的集成测试不适用于Eclipse ...如果我们看到使用的POM和代码,我们可以说更多吗?