在GWT托管模式下激活Spring Profile活动JVM参数

时间:2012-02-02 19:46:42

标签: spring gwt maven maven-3

我有弹簧配置文件配置,如下所示

<beans profile="dev">
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${db.driverClassName}" />
        <property name="jdbcUrl" value="dfgdfg" />
        <property name="user" value="${db.username}" />
        <property name="password" value="${db.password}" />
    </bean>
</beans>

<beans profile="prod">
    <jee:jndi-lookup id="dataSource" jndi-name="jdbc/Test"/>
</beans>

我试图通过VM参数-Dspring.profiles.active="dev"使其中一个处于活动状态。这适用于Tomcat,托管模式下的context-param路由也可以通过gwt-maven-plugin工作,但我无法让VM参数工作。我尝试mvn -Dspring.profiles.active="dev" gwt:run也试图通过运行配置中JRE选项卡下的VM参数以及目标-Dspring.profiles.active="dev"传递gwt:run。我还尝试了环境标签,甚至-Dspring.profiles.active=dev,但NoSuchBeanDefinitionException并没有让步。这是因为嵌入式服务器的功能有限吗?

1 个答案:

答案 0 :(得分:20)

不,简单地说gwt:maven插件有点奇怪,并且它不会将系统属性传递给已启动的JVM实例,而传递参数的唯一方法是在插件配置中将其放入<extraJvmArgs>中。在你的情况下,你必须添加以下gwt插件的配置标签:

<extraJvmArgs>-Dspring.profiles.active=dev</extraJvmArgs>

上帝知道为什么这只有这种方式,我希望还有其他正常的方法。