【发布时间】:2012-03-09 18:09:39
【问题描述】:
我正在编写一个由 Tomcat 6 托管的 JSF 2.1 Web 应用程序。
在运行时,我想检索一组与外部服务相关的复杂参数。
在开发时,我不知道这些参数会是什么,也不知道会是什么。
这些参数将由我们的操作人员设置,因此必须在 .war 文件之外定义。
我认为 context.xml 会有所帮助(即TOMCAT_HOME/conf/Catalina/localhost/MyWebApp.xml),但这只能接受标量参数,而且我似乎没有任何方法可以迭代它们。
这是我想在运行时访问的示例。
<services>
<service id="bbc" name="BBC Weather" url="http://www.bbc.co.uk/weather/" />
<service id="underground" name="Weather Underground" url="http://www.wunderground.com/weather/api/">
<login username="test" password="test" />
</service>
<service id="network" name="The Weather Network" url="http://www.theweathernetwork.com/">
<method type="post" />
</service>
</services>
有没有一种万无一失的方法可以以编程方式访问TOMCAT_HOME/conf/Catalina/localhost/MyWebApp.xml?我知道how to get the path to TOMCAT_HOME,但我们的运维人员可能会选择更改 Tomcat 主机或引擎名称。
作为一种解决方法,我总是可以将单个参数写入 context.xml,如下所示。
<Parameter name="config.file" value="C:/Program Files/Apache Software Foundation/Tomcat 6.0/conf/Catalina/localhost/MyConfigFile.xml" />
但这也是一个额外的错误点,安装说明中的一个额外步骤,需要维护等。
我确信一定有一个简单的方法可以做到这一点,我错过了什么?
提前致谢,亚当。
【问题讨论】:
标签: jakarta-ee servlets configuration jsf-2 tomcat6