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

时间:2016-04-10 07:39:17

标签: 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>

但是,在使用此配置文件启动服务器时,它只会抛出一个&#34;无法解析表达式&#34;所有这些部分的错误。

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

正如你所看到的,我在黑暗中摸索了一下,因为我还没有找到关于如何做到这一点的任何适当文件。我甚至不确定它是否真的可行。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

Wildfly的覆盖标准属性是否以这种方式工作? 例如jboss.http.port

中的standalone.xml
   <socket-binding name="http" port="${jboss.http.port:8080}"/> 

一种可能是致电standalone.sh -Djboss.http.port=8081。然后,Wildfly http端口应该在8081

它也适用于您自己的变量。