0

我有一个 Web 应用程序需要能够在运行时从 JNDI 中读取 N 个键(字符串):

Context ctx = new InitialContext();
String[] values = (String[])ctx.lookup("KEYS");

for(String value : values) {
    // Do something with the key's value...
}

这将在 Tomcat 上运行,因此我需要能够将这些键作为Context/Parameter元素存储在内部context.xml,如下所示:

<Context>
    <Parameter name="key1" value="value1" override="false" />
    <Parameter name="key2" value="value2" override="false" />
    <Parameter name="key3" value="value3" override="false" />
    ...etc.
</Context>

问题是,我将此应用程序部署到的每个环境(DEV、QA、DEMO、LIVE 等)都有不同数量的密钥。例如,DEV 可能只有 1 个键(即只有 1 个Context/Parameter元素)。LIVE 可能有 20 个。

我如何在 Java 代码中适应这一点?代码不能跨环境更改,所以我需要一种方法来通过 JNDI 加载任意数量的键,使用相同的 Java 代码,只是Context/Parameters内部不同context.xml。有任何想法吗?提前致谢!

4

1 回答 1

0
Context ctx = new InitialContext();
Enumeration e = ctx.getInitParameterNames();  
while (e.hasMoreElements()) {  
     String key = (String)e.nextElement();  
     String value = getInitParameter(key);  
     out.println("   " + key + " = " + value);  
}  
于 2013-08-23T15:36:22.303 回答