server - 如何在 Wildfly 配置文件中使用变量?

标签 server environment-variables wildfly devops wildfly-10

我正在设置一个普通的standalone-full.xml文件适用于所有服务器环境,因此需要为数据库 URL(等)提供变量,而不是对它们进行硬编码。

配置文件中的一个这样的部分可能如下所示:

<datasource jta="true" jndi-name="java:/somename" pool-name="somename" enabled="true" use-ccm="false">
                <connection-url>jdbc:mysql://${SOMENAME_DB_URL}</connection-url>
                <driver-class>com.mysql.jdbc.Driver</driver-class>
                <driver>mysql</driver>
                <pool>
                    <min-pool-size>5</min-pool-size>
                    <max-pool-size>15</max-pool-size>
                </pool>
                <security>
                    <user-name>${DB_USERNAME}</user-name>
                    <password>${DB_PASSWORD}</password>
                </security>
                <validation>
                    <validate-on-match>false</validate-on-match>
                    <background-validation>false</background-validation>
                </validation>
                <statement>
                    <share-prepared-statements>false</share-prepared-statements>
                </statement>
            </datasource>

但是,在使用此配置文件启动服务器时,它只会为所有此类部分抛出“无法解析表达式”错误。

我试过把变量放在 /etc/environment 中,以及在 .jbossclirc 中文件在 /bin使用 set DB_USERNAME=mydbusername ,但无济于事。

正如您所看到的,我在黑暗中摸索了一下,因为我找不到任何有关如何执行此操作的适当文档。我什至不确定这是否真的可能。任何帮助是极大的赞赏。

最佳答案

您应该使用 Java 系统属性而不是环境变量。

您也可以将这些属性作为 -D 传递standalone.sh 的参数,例如

bin/standalone.sh -DDB_USERNAME=me -DDB_PASSWORD=secret

或者,您可以在属性文件中定义您的属性,并使用 -P 将其传递给启动脚本。选项:
bin/standalone.sh -P database.properties

关于server - 如何在 Wildfly 配置文件中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36527163/

相关文章:

server - 服务器和客户端的区别

Ant 在 Windows 路径中找不到可执行文件

jms - wildfly10中JMS队列的JNDI名称格式

MySQL 使用 Brew 导致 "Access denied"错误

android - 更改解析客户端 key

c++ - 使用 C++ CGI 创建环境变量

azure - Powershell - 设置环境变量而无需关闭应用程序

Java:无论应用服务器如何,通用访问资源文件

logging - 在 WildFly 8 中转储 HTTP 请求

python - 如何使用python增加grpc中的消息大小