Как использовать переменные в файле конфигурации Wildfly?

Я создаю общий 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, а также в the на /bin используя set DB_USERNAME=mydbusername, но безрезультатно.

как вы можете видеть, я немного шарю в темноте, так как я не смог найти никакой надлежащей документации о том, как это сделать. Я даже не уверен, что это возможно. Любая помощь очень ценится.

2 ответов


вы должны использовать системные свойства Java вместо переменных среды.

вы также можете передать эти свойства как -D аргументы standalone.sh, например,

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

кроме того, вы можете определить свои свойства в файле свойств и передать его в сценарий запуска с помощью :

bin/standalone.sh -P database.properties

переопределение стандартных свойств из Wildfly работает таким образом? Например jboss.http.port С standalone.xml

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

одна возможность-позвонить standalone.sh -Djboss.http.port=8081. Тогда http-порт Wildfly должен быть включен 8081.

Он должен работать для ваших собственных переменных.