使用jboss-cli引用系统属性时无法解析

时间:2019-04-24 20:23:14

标签: jboss wildfly 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.prefixsystem-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不能明确定义此变量?

1 个答案:

答案 0 :(得分:1)

您可以在CLI中使用的系统属性不是您的Wildfly配置中定义的属性:

  

在管理CLI命令中使用的系统属性值必须已经定义才能解决。启动管理CLI实例时,您必须传入属性文件(--properties = / path / to / file.properties)或属性值对(-Dkey = value)。属性文件使用标准的KEY = VALUE语法。

(对于EAP,{source,但对于Wildfly来说最可能相同)