Tomcat替换VM参数

时间:2012-09-11 14:53:53

标签: java tomcat servlets configuration jvm-arguments

这可能是一个愚蠢的问题:

我目前有一些我的Web应用程序需要的VM参数。他们是这样的:

-Dcom.company.custom.var='test'

我用代码访问它们:

System.getProperty("com.company.custom.config")

我想将它们移动到一个tomcat xml文件(server.xml,context.xml等)中,但我不确定如何做到这一点。

所以我的问题是两部分。我应该在哪里(以及如何)将这些变量放入xml中,如何在代码中访问它们?

如果已经回答,请提前致谢并表示歉意。我对这个主题的搜索失败了。

2 个答案:

答案 0 :(得分:2)

如果这些是特定于应用的配置项,则其标准位置为<context-param>中的web.xml。像这样:

<context-param>
    <param-name>myvar</param-name>
    <param-value>value</param-value>
</context-param>

您可以使用ServletContext#getInitParameter(String)从代码中访问这些值。从servlet内部,您可以编写如下内容:

String myvar = getServletContext().getInitParameter("myvar");

答案 1 :(得分:1)

正式地说,所有JVM选项都可以转到setenv.sh(对于Unix)或setenv.bat(对于Windows)。这个文件is not present by default在Tomcat中,但如果你创建一个,它将被启动脚本选中。

您应该使用此而不是server.xml的原因是server.xml可能会从一个Tomcat版本更改为另一个版本,但setenv.sh(或.bat)完全是您自定义的。

正如您所指出的那样,读取此值是通过System.getProperty(...)