2016-04-10 40 views
5

Sto configurando un file comune standalone-full.xml per tutti gli ambienti server e pertanto è necessario disporre di variabili per gli URL del database (e tali), invece di codificarli con difficoltà.Come utilizzare le variabili nel file di configurazione di Wildfly?

Una tale sezione nel file di configurazione potrebbe essere simile a questo:

<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> 

Tuttavia, al momento di avviare il server con questa configurazione il file getta semplicemente un errore "Impossibile risolvere l'espressione" per tutti tali sezioni.

Ho provato a mettere le variabili in /etc/environment, così come nel file .jbossclirc in /bin utilizzando set DB_USERNAME=mydbusername, ma senza alcun risultato.

Come potete vedere, sto vagando un po 'al buio qui da quando non sono stato in grado di trovare alcuna documentazione adeguata su come farlo. Non sono nemmeno sicuro se sia effettivamente possibile. Qualsiasi aiuto è molto apprezzato.

risposta

4

È necessario utilizzare le proprietà di sistema Java anziché le variabili di ambiente.

È inoltre possibile passare queste proprietà come argomenti -D a standalone.sh, ad es.

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

In alternativa, è possibile definire le proprietà di un file delle proprietà e passare che per lo script di avvio con un -P un'opzione:

bin/standalone.sh -P database.properties 
0

Sostituisce le proprietà standard di Wildfly in questo modo? Per esempio jboss.http.port da standalone.xml

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

Una possibilty è quella di chiamare standalone.sh -Djboss.http.port=8081. Quindi, la porta http di Wildfly dovrebbe essere su 8081.

Dovrebbe funzionare anche per le proprie variabili.

Problemi correlati