Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in DevOps and Agile by (29.3k points)

I am setting up a common standalone-full.xml file for all server environments, and therefore need to have variables for database URL's (and such), instead of hard coding them.

One such section in the configuration file might look like this:

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

However, upon starting the server with this config file it simply throws an "Unable to resolve expression" error for all such sections.

I've tried putting the variables in /etc/environment, as well as in the .jbossclirc file in /bin using set DB_USERNAME=mydbusername, but to no avail.

As you can see I'm fumbling a bit in the dark here since I haven't been able to find any proper documentation on how to do this. I'm not even sure if it's actually possible. Any help is greatly appreciated.

1 Answer

0 votes
by (50.2k points)

For this, you can use Java system properties instead of environment variables.

Pass -D arguments to standalone.sh 

Let’s see how to pass this -D arguments with an example

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

There is one more alternative way where you can define your properties in a properties file and pass this to startup script with -p options 

Let’s see this with an example

bin/standalone.sh -P database.properties

Related questions

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...