Przygotowuję wspólny plik standalone-full.xml
dla wszystkich środowisk serwerowych i dlatego muszę mieć zmienne dla adresów URL bazy danych (i takich), zamiast twardego kodowania ich.Jak wykorzystać zmienne w pliku konfiguracyjnym Wildfly?
Jedna taka sekcja w pliku konfiguracyjnym może wyglądać następująco:
<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>
Jednak po uruchomieniu serwera z tego pliku konfiguracyjnego po prostu rzuca „Nie można rozwiązać wyrażenie” błąd dla wszystkich tych sekcjach.
Próbowałem oddanie zmienne w /etc/environment
, a także w pliku .jbossclirc
w /bin
wykorzystaniem set DB_USERNAME=mydbusername
, ale bezskutecznie.
Jak widać, szukam tu trochę ciemności, ponieważ nie udało mi się znaleźć odpowiedniej dokumentacji, jak to zrobić. Nie jestem nawet pewien, czy to rzeczywiście możliwe. Każda pomoc jest bardzo doceniana.