从 server.xml 按名称读取变量

Read variable by name from server.xml

<?xml version="1.0" encoding="UTF-8"?>
<server>

  <variable 
    name="temp" 
    value="Something" />
</server>

如何以编程方式从基于 Java 的 Web 应用程序的 xml 文件中读取 temp

正在尝试:

String temp = System.getenv("temp");

执行此操作有几个选项:

1。使用 MicroProfile 配置

server.xml中:

<featureManager>
  <feature>mpConfig-1.3</feature>
  ....
</featureManager>

<variable  name="temp"  value="Something" />

然后注入任何 CDI bean:

@Inject
@ConfigProperty(name = "temp")
String temp;

2。使用 <jndiEntry>

将变量存储在 JNDI 中

server.xml中:

<featureManager>
  <feature>jndi-1.0</feature>
  ....
</featureManager>

<jndiEntry jndiName="config/foo" value="whatever"/>
<jndiEntry jndiName="config/bar" value="${temp}"/>
<jndiEntry jndiName="config/configDir" value="${server.config.dir}"/>

在 servlet 或 EJB(或其他托管 class)中注入资源:

@Resource(lookup = "config/foo")
String foo;

或程序化 JNDI 查找:

String configDir = InitialContext.doLookup("config/configDir");

3。使用环境变量:

此方法要求您在${server.config.dir}/server.env 或启动Liberty 服务器的进程的环境中设置环境变量。这里的所有内容都将在服务器 JVM 的环境中结束。

temp=Something
foo=bar

然后在应用程序中获取 env var:

String temp = System.getenv("temp");