如何在 Wildfly 配置文件中使用变量?
How to make use of variables in Wildfly configuration file?
我正在为所有服务器环境设置一个通用 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>
但是,在使用此配置文件启动服务器时,它只会为所有此类部分抛出 "Unable to resolve expression" 错误。
我试过使用 set DB_USERNAME=mydbusername
将变量放入 /etc/environment
以及 .jbossclirc
中的 /bin
文件中,但无济于事。
如您所见,我在这里有些摸不着头脑,因为我无法找到有关如何执行此操作的任何适当文档。我什至不确定这是否真的可能。非常感谢任何帮助。
覆盖 Wildfly 的标准属性是否可以这样工作?
例如 jboss.http.port
来自 standalone.xml
<socket-binding name="http" port="${jboss.http.port:8080}"/>
一种可能是调用 standalone.sh -Djboss.http.port=8081
。然后,Wildfly http 端口应该在 8081
.
它也应该适用于您自己的变量。
您应该使用 Java 系统属性而不是环境变量。
您还可以将这些属性作为 -D
参数传递给 standalone.sh
,例如
bin/standalone.sh -DDB_USERNAME=me -DDB_PASSWORD=secret
或者,您可以在属性文件中定义属性,然后使用 -P
选项将其传递给启动脚本:
bin/standalone.sh -P database.properties
我正在为所有服务器环境设置一个通用 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>
但是,在使用此配置文件启动服务器时,它只会为所有此类部分抛出 "Unable to resolve expression" 错误。
我试过使用 set DB_USERNAME=mydbusername
将变量放入 /etc/environment
以及 .jbossclirc
中的 /bin
文件中,但无济于事。
如您所见,我在这里有些摸不着头脑,因为我无法找到有关如何执行此操作的任何适当文档。我什至不确定这是否真的可能。非常感谢任何帮助。
覆盖 Wildfly 的标准属性是否可以这样工作?
例如 jboss.http.port
来自 standalone.xml
<socket-binding name="http" port="${jboss.http.port:8080}"/>
一种可能是调用 standalone.sh -Djboss.http.port=8081
。然后,Wildfly http 端口应该在 8081
.
它也应该适用于您自己的变量。
您应该使用 Java 系统属性而不是环境变量。
您还可以将这些属性作为 -D
参数传递给 standalone.sh
,例如
bin/standalone.sh -DDB_USERNAME=me -DDB_PASSWORD=secret
或者,您可以在属性文件中定义属性,然后使用 -P
选项将其传递给启动脚本:
bin/standalone.sh -P database.properties