在 Wildfly OFFLINE CLI 中使用文字变量

Using literal variables in a Wildfly OFFLINE CLI

我想使用离线 Wildfly CLI 添加系统属性

问题是这个值应该是一个变量

这是期望的结果:

        <property name="user.country" value="${country}"/>

问题是 CLI 尝试解析变量

[disconnected /] embed-server
[standalone@embedded /] /system-property=user.country:add(value="${country}")
{
    "outcome" => "failed",
    "failure-description" => "WFLYCTL0211: Cannot resolve expression '${country}'",
    "rolled-back" => true
}

我试图用“$$”或“\$”转义“$”,但没有成功。

或者更确切地说,通过“$$”我得到了

<property name="user.language" value="$${countrylowercase}"/>

如果我 运行 使用连接 CLI 重试服务器,它会正常工作。

如何离线执行此操作?

作为解决方法,我正在独立运行 sed 以将“$${”替换为“${”,但它不是很干净...

解决方案是使用这样的属性文件:

cat cli.property

    country=$country
    countrylowercase=$countrylowercase

cat cli.commands

    embed-server 
    /system-property=user.language:add(value="${countrylowercase}") 
    /system-property=user.region:add(value="${country}") 
    /system-property=user.country:add(value="${country}") 
    stop-embedded-server 

$JBOSS_HOME/bin/jboss-cli.sh --properties=./cli.property --file=./cli.commands

{"outcome" => "success"}
{"outcome" => "success"}
{"outcome" => "success"}

注意语法很重要,因为使用嵌入式模式,以下格式也会失败

cat cli.property

    country=${country}
    countrylowercase=${countrylowercase}