Creating a Datasource on JBoss-WildFly using a batch script
Installing a Datasource on JBoss AS 7 and WildFly as module can be tedious as it requires three commands to complete. However by creating a batch script you can easily automate the process and install it on every distribution with as little as a shell command. Here is a sample script to create a Datasource to be used for a MySQL database:
connect 127.0.0.1
batch
module add --name=com.mysql --resources=/home/jboss/Downloads/mysql-connector-java-5.1.24-bin.jar --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql)
data-source add --jndi-name=java:/jboss/MySQLDS --name=MySQLPool --connection-url=jdbc:mysql://localhost:3306/as7development --driver-name=mysql --user-name=jboss --password=jboss
run-batch
As you can see, a batch script needs just a batch command to start the batch process and the run-batch command to execute the list of commands. the only thing you have to customize are the Datasource settings and the location where your JDBC Driver is to be found (We have assumed it’s on /home/jboss/Downloads)
Save the above script in a file, let’s say dbscrpit.cli and execute it with:
$ ./jboss-cli.sh --file=dbscript.cli
Troubleshooting:
if you fail to activate the Datasource due to the following error:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'jboss'@'localhost' to database 'as7development'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.7.0_67]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [rt.jar:1.7.0_67]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_67]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) [rt.jar:1.7.0_67]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
It’s a problem with your user settings. You should check out that your user has been granted privileges to connect to the specified host.
Make sure you have granted privileges to your user, for example:
CREATE USER 'jboss'@'localhost' IDENTIFIED BY 'jboss'; GRANT ALL PRIVILEGES ON *.* to 'jboss'@'localhost' with GRANT OPTION; Query OK, 0 rows affected (0.00 sec)
Recommended Articles
Configure Connection Properties in JBoss/WildFly Datasource - Expert Guide
Learn how to configure connection properties in JBoss/WildFly Datasource. #Java #WildFly #Datasource #ConnectionProperties
Create and Configure DataSource with WildFly Application Server Using CLI
Learn how to create a DataSource for PostgreSQL in WildFly using CLI. Includes configuring and injecting it into a Java application.
Deploy WildFly Datasource XML File for Java EE Applications: A Comprehensive Guide
Learn how to deploy a WildFly datasource XML file in your Java EE application with step-by-step instructions and best practices.
Configure MS SQL Server Datasource on WildFly Application Server
Learn how to configure Microsoft SQLServer Datasource on WildFly application server with step-by-step instructions and examples.