访问Tomcat context.xml参数

访问Tomcat context.xml参数,tomcat,configuration,Tomcat,Configuration,我有一些根据目标环境而变化的应用程序配置(例如配置文件位置)。 由于此配置因主机而异,因此我不想将其嵌入WAR文件中 根据中的“上下文参数”部分,将此类配置放在Tomcat conf/Context.xml文件上似乎是个好主意,如下所示: <Context ...> ... <Parameter name="companyName" value="My Company, Incorporated" override="false"/> ... <

我有一些根据目标环境而变化的应用程序配置(例如配置文件位置)。 由于此配置因主机而异,因此我不想将其嵌入WAR文件中

根据中的“上下文参数”部分,将此类配置放在Tomcat conf/Context.xml文件上似乎是个好主意,如下所示:

<Context ...>
  ...
  <Parameter name="companyName" value="My Company, Incorporated"
     override="false"/>
  ...
</Context>

...
...
但问题是如何在我的应用程序中检索它们

我不使用Servlet类来接收请求(它是一个soapweb服务项目)

我尝试创建一个上下文侦听器,如下所示:

    public class SystemPropertiesHelper implements
            javax.servlet.ServletContextListener {


        @Override
        public void contextInitialized(ServletContextEvent event) {

            System.out.println("Started!");
            ServletContext context = event.getServletContext();

            Enumeration<String> params = context.getInitParameterNames();
            while (params.hasMoreElements()) {
              String param = (String) params.nextElement();
              String value = context.getInitParameter(param);
              System.out.println(param + " -> " + value);
            }

        }

        @Override
        public void contextDestroyed(ServletContextEvent event) {

        }
    }
公共类SystemPropertieHelper实现
javax.servlet.ServletContextListener{
@凌驾
公共void contextInitialized(ServletContextEvent事件){
System.out.println(“开始!”);
ServletContext=event.getServletContext();
枚举参数=context.getInitParameterNames();
while(params.hasMoreElements()){
String param=(String)params.nextElement();
字符串值=context.getInitParameter(param);
系统输出打印项次(参数+“->”+值);
}
}
@凌驾
公共无效上下文已销毁(ServletContextEvent事件){
}
}
我更改了应用程序web.xml,将该类声明为侦听器。 但是,它无法检索context.xml文件的参数。 另一方面,web.xml(见下文)上声明的属性被很好地检索到

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

测验
价值测试
请问,谁能帮我弄清楚如何检索这些参数? 如果没有JNDI的东西,这可能吗? 或者是否有其他更适合放置此类配置的地方

非常感谢你

莱昂纳多·莱特