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

Ara*_*d A 14 gwt spring maven-3 maven

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

<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>
Run Code Online (Sandbox Code Playgroud)

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

jus*_*sio 27

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

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

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