我正在使用Ubuntu的默认安装的Tomcat 6.我正在部署一个ROOT.war,并试图设置一个特定于它的环境variables,即可以从Servlet.init(config)中的System.getenv()访问。
根据文档( http://tomcat.apache.org/tomcat-6.0-doc/config/context.html ),我可以在conf / Catalina / localhost / ROOT.xml的Context元素中指定。 我已经创build了这些内容:
<Context> <Environment name="FOO" value="bar" type="java.lang.String" override="false"/> </Context>
我像往常一样部署webapp,即webapps / ROOT.war。
Servlet.init(config)中的Server.getenv(“FOO”)仍然返回null。 我错过了什么?
从Tomcat用户邮件列表:
从Tomcat文档中不完全清楚,但是您不创build可以使用System.getenv检索的环境variables。 相反,您正在将条目放入JNDI上下文中。
你会想要像这样检索它们:
//获取我们的环境命名上下文Context initCtx = new InitialContext(); Context envCtx =(Context)initCtx.lookup(“java:comp / env”);
String FOO =(String)envCtx.lookup(“FOO”);
//现在FOO应该有你的值“bar”
JNDI资源的文档可以在这里find: http : //tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html
希望有帮助, – – 时刻