如何在启动时在Tomcat配置中指定系统属性?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

我知道我可以通过使用-D参数传递参数来指定Tomcat的系统属性,例如“ -Dmy.prop = value ”。

我想知道是否有更简洁的方式来完成这项工作,方法是在context.xml文件或其他一些tomcat配置文件中指定属性值。我想这样做是因为跟踪我的属性更容易,其次,我有多个上下文正在运行,我不知道如何通过-D参数指定特定于上下文的属性。

我正在使用Tomcat 5.5版。

提问于
用户回答回答于

可以通过上下文或环境参数来指定这些参数,例如在context.xml中。请参阅本页上标题为“上下文参数”和“环境条目”的章节:

http://tomcat.apache.org/tomcat-5.5-doc/config/context.html

这些值将通过Context.lookup(String)方法提供,而不是作为系统参数。

另一种指定这些值的方法是在正在部署的Web应用程序的web.xml文件内部定义变量(请参见下文)。这通常被认为是不好的做法,因为部署的工件不应该是特定于环境的。如果你真的想这样做,下面是配置代码片段:

<env-entry>
    <env-entry-name>SMTP_PASSWORD</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>abc123ftw</env-entry-value>
</env-entry>
用户回答回答于

根据Tomcat 6文档,要使用<env-entry>必须编写这样的代码才能使用<env-entry>

// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");

// Look up our data source
String s = (String)envCtx.lookup("SMTP_PASSWORD");

扫码关注云+社区

领取腾讯云代金券