访问Tomcat context.xml参数

时间:2014-10-01 17:00:41

标签: tomcat configuration

我有一些应用程序配置根据目标环境(例如配置文件位置)而有所不同。 由于这种配置因主机而异,我不想将它们嵌入到WAR文件中。

根据http://tomcat.apache.org/tomcat-5.5-doc/config/context.html中的“上下文参数”部分,将这样的配置放在Tomcat conf / context.xml文件上似乎是个好主意,如下所示:

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

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

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

我尝试创建一个类似下面的上下文监听器:

    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) {

        }
    }

我更改了应用程序web.xml以将此类声明为侦听器。 但是,它无法检索context.xml文件的参数。 另一方面,很好地检索了在web.xml上声明的属性(见下文)。

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

拜托,有谁可以帮我弄清楚如何检索这些参数? 没有JNDI的东西会有可能吗? 或者还有其他更适合放置此类配置的地方吗?

非常感谢你,

Leonardo Leite

0 个答案:

没有答案