5.2. 用于解析管理模型表达式的环境变量
要解决管理模型表达式并在 OpenShift Container Platform 上启动 JBoss EAP 8.0 服务器,您可以在管理命令行界面(CLI)中添加环境变量或设置 Java 系统属性。如果您同时使用两者,JBoss EAP 会观察并使用 Java 系统属性,而非环境变量来解析管理模型表达式。
系统属性到环境变量映射
假设您具有此管理表达式 :${my.example-expr}
。当您的 JBoss EAP 服务器尝试解析它时,它会检查名为 my.example-expr
的系统属性。
- 如果您的服务器找到此属性,它将使用其值来解析表达式。
- 如果找不到此属性,您的服务器将继续搜索。
接下来,假设您的服务器找不到系统属性 my.example-expr
,它将 my.example-expr
自动更改为所有大写字母,并将不是字母数字的所有字符替换为下划线(_): MY_EXAMPLE_EXPR
。然后,JBoss EAP 会检查具有该名称的环境变量。
- 如果您的服务器找到此变量,它将使用其值来解析表达式。
- 如果找不到此变量,您的服务器将继续搜索。
如果您的原始表达式以前缀 env 开头。
JBoss EAP 通过删除前缀来解析环境变量,然后只查找环境变量名称。例如,对于表达式 env.example
,JBoss EAP 会查找 示例
环境变量。
如果这些检查找不到用于解析您的原始表达式的属性或变量,JBoss EAP 会查找表达式是否具有默认值。如果这样做,则默认值会解析表达式。如果没有,则 JBoss EAP 无法解析表达式。
两台服务器的示例
假设在一个服务器上,JBoss EAP 定义此管理资源: < socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
.要运行具有不同端口偏移的第二个服务器,而不是编辑配置文件,请执行以下操作之一:
-
设置
jboss.socket.binding.port-offset
Java 系统属性,以解析第二服务器上的值:./standalone.sh -Djboss.socket.binding.port-offset=100
。 -
设置
JBOSS_SOCKET_BINDING_PORT_OFFSET
环境变量,以解析第二服务器上的值:JBOSS_SOCKET_BINDING_PORT_OFFSET=100 ./standalone.sh
.