【问题标题】:Wildfly CLI - disable environment variable resolution? i.e. write unresolved variable to configWildfly CLI - 禁用环境变量解析?即将未解析的变量写入配置
【发布时间】:2015-07-01 14:56:30
【问题描述】:

我正在尝试使用 JBoss CLI 修改正在运行的 Wildfly(在 Docker 内部)的配置。我需要做的一件事是

data-source add --connection-url=jdbc:mysql://${DB_PORT_3306_TCP_ADDR}:3306/xplore (...)

我需要在standalone.xml 中生成的配置字面上包含

<connection-url>jdbc:mysql://${DB_PORT_3306_TCP_ADDR}:3306/xplore</connection-url>

DB_PORT_3306_TCP_ADDR 是一个变量,Wildfly 重新启动时会解析它。我在 CLI-ing 时它不存在。

问题是 CLI 在我的 CLI 会话期间尝试解决它(并且失败)(而不是将其作为纯字符串注入),导致输出错误甚至

<connection-url>$</connection-url>

我尝试通过添加“...”和“...”、将 $ 转义为​​ \$、删除括号、在脚本中定义包含我的字符串的变量并插入该变量来解决此问题(仍然得到解决)。我查看了有关此的文档,虽然有一个命令 resolve-expression(),但没有逆向,没有设置,什么都没有。似乎无法阻止解决方案的发生。

如何通过 CLI 将未解析的表达式插入到我的配置中?

【问题讨论】:

    标签: jboss docker command-line-interface wildfly


    【解决方案1】:

    答案是发出这个命令:

    data-source add --connection-url=jdbc:mysql://${DB_PORT_3306_TCP_ADDR:}:3306/xplore (...)
    

    在 ADDR 之后带有 :。这显然解决了解析错误,因为它现在默认为空值,并且它实际上导致字符串值本身被写入。事实证明,解析我的变量的不是 CLI,而是服务器本身。


    真正的解决方案是停止会话,修改服务器设置并完全禁用变量解析,然后启动新会话。

    【讨论】:

    • 嗯,那应该是 ${env.DB_PORT_3306_TCP_ADDR} 并且没有任何变通方法就可以正常工作。
    • @ctomc 不,这将失败并显示“”WFLYCTL0211:无法解析表达式“${env.DB_PORT_3306_TCP_ADDR}”。 Marnes,如何在服务器配置中禁用变量解析?
    猜你喜欢
    • 2017-06-12
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多