我有一个 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
。有任何想法吗?提前致谢!