【问题标题】:Tomcat + Spring and environment variablesTomcat + Spring 和环境变量
【发布时间】:2011-12-15 18:56:19
【问题描述】:

在我的 Spring 文件中:

   <bean id="propertyConfigurer" class="org.myapp.MyConfigurator">
        <property name="locations">
        <list>
                       <value>classpath:configuration-${env}.properties</value>
        </list>
    </property>
</bean>

${env} 变量在 maven 的配置文件中定义。 但是当我从eclipse运行tomcat 6(已发布)中的应用程序时,它不会在maven中查找。那么如何设置Tomcat的变量呢?

谢谢

随机化

【问题讨论】:

标签: java eclipse spring tomcat maven


【解决方案1】:

在 Eclipse 中添加系统变量:转到运行 --> 运行配置 --> Tomcat 选择参数选项卡并添加到 VM 参数-Denv=blabla

【讨论】:

    【解决方案2】:

    要在 tomcat context.xml 中定义一个可以在 spring 中使用的变量,请将此行添加到 context.xml 的正确上下文中。

    <Parameter name="env" value="ABCDEFG"  override="false"/>
    

    【讨论】:

    • override:如果您不希望在 Web 应用程序部署描述符中找到的相同参数名称的 覆盖此处指定的值,请将此设置为 false。默认情况下,允许覆盖。
    【解决方案3】:

    Tarlog 解决方案可以解决您的问题,但只能在 eclipse 中解决,如果您从 eclipse 中删除服务器定义,则会丢失定义,并且每次更改 IDE 或删除服务器定义时都需要重新添加。

    所以更好的方法是根据您的环境创建一个 shell 或 bat 文件(如 runServer.sh/.bat)并将此参数添加到 JAVA_OPTS 变量中,以便在 catalina.sh/.bat 运行时调用此变量(startup.sh /.bat 在其中调用了 catalina 脚本)。您可以在本地、测试和生产环境中使用这种方法。

    Windows:runServer.bat

    set JAVA_OPTS="-Dvariable=value"
    tomcat/bin/startup.bat
    

    Linux:runServer.sh

    export JAVA_OPTS="-Dvariable=value"
    tomcat/bin/startup.sh
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      相关资源
      最近更新 更多