使用 jboss-cli 引用系统时无法解析系统 属性
Cannot resolve system property when using referencing it using jboss-cli
我正在尝试使用 jboss-cli 刷新 JNDI 数据源,但数据源是使用 ${jndi.prefix}
变量定义的,CLI 似乎无法解析它.
这是我在 standalone.xml 中的数据源:
<datasource jndi-name="${jndi.prefix}/CORE" pool-name="${jndi.prefix}/CORE_Pool" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:sqlserver://10.222.255.100;DatabaseName=CORE</connection-url>
<driver>sqlserver</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>10</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>CORE_DBO</user-name>
<password>password</password>
</security>
</datasource>
和jndi.prefix
定义在system-properties
:
<system-properties>
<property name="jndi.prefix" value="java:"/>
</system-properties>
我可以使用 CLI 看到它,但是在尝试解决它时,我被告知它无法识别:
[standalone@localhost:9990 /] cd system-property
[standalone@localhost:9990 system-property] cd jndi.prefix
[standalone@localhost:9990 system-property=jndi.prefix] ls
value=java:
[standalone@localhost:9990 system-property=jndi.prefix] /subsystem=datasources/data-source=${jndi.prefix}\/CORE_Pool/:read-resource
Unrecognized system property jndi.prefix
我尝试将数据源中的 ${jndi.prefix}
替换为字面值 java:
并且成功了,但是我们有大量的环境需要更新,所以我不喜欢该解决方案。
为什么 CLI 无法在明确定义的情况下解析此变量?
您可以在 CLI 中使用的系统属性不是您的 Wildfly 配置中定义的那些:
System property values used in management CLI commands must have already been defined in order to be resolved. You must either pass in a properties file (--properties=/path/to/file.properties) or property value pairs (-Dkey=value) when starting your management CLI instance. The properties file uses a standard KEY=VALUE syntax.
(source 用于 EAP,但它很可能与 Wildfly 相同)
我正在尝试使用 jboss-cli 刷新 JNDI 数据源,但数据源是使用 ${jndi.prefix}
变量定义的,CLI 似乎无法解析它.
这是我在 standalone.xml 中的数据源:
<datasource jndi-name="${jndi.prefix}/CORE" pool-name="${jndi.prefix}/CORE_Pool" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:sqlserver://10.222.255.100;DatabaseName=CORE</connection-url>
<driver>sqlserver</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>10</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>CORE_DBO</user-name>
<password>password</password>
</security>
</datasource>
和jndi.prefix
定义在system-properties
:
<system-properties>
<property name="jndi.prefix" value="java:"/>
</system-properties>
我可以使用 CLI 看到它,但是在尝试解决它时,我被告知它无法识别:
[standalone@localhost:9990 /] cd system-property
[standalone@localhost:9990 system-property] cd jndi.prefix
[standalone@localhost:9990 system-property=jndi.prefix] ls
value=java:
[standalone@localhost:9990 system-property=jndi.prefix] /subsystem=datasources/data-source=${jndi.prefix}\/CORE_Pool/:read-resource
Unrecognized system property jndi.prefix
我尝试将数据源中的 ${jndi.prefix}
替换为字面值 java:
并且成功了,但是我们有大量的环境需要更新,所以我不喜欢该解决方案。
为什么 CLI 无法在明确定义的情况下解析此变量?
您可以在 CLI 中使用的系统属性不是您的 Wildfly 配置中定义的那些:
System property values used in management CLI commands must have already been defined in order to be resolved. You must either pass in a properties file (--properties=/path/to/file.properties) or property value pairs (-Dkey=value) when starting your management CLI instance. The properties file uses a standard KEY=VALUE syntax.
(source 用于 EAP,但它很可能与 Wildfly 相同)