If you want Magnolia to use an external database, such as, Oracle, MySQL, Postgres, etc. with a JNDI datasource then you are going to want to create a (JBoss) module for your JBDC driver. I suggest doing this prior to Magnolia installation if possible, otherwise I would just move the webapp out of the deployment directory while setting this up. This way you can start and stop the server without having to wait for Magnolia.
Create a Driver Module
- Create a file path structure under the
JBOSS_HOME/modules/directory. For example, for an Oracle JDBC driver, create a directory structure as follows:
- Copy the JDBC driver JAR into the
main/subdirectory, create a
The directory should look like this:
- Start the Server:
- Start the Management CLI in another command window:
JBOSS_HOME/bin/jboss-cli.sh --connect controller=localhost:9999
Run the following CLI command to add the JDBC driver module as a driver:
An example for this scenario would be:
Note: After running this command you should see something similar to the following in the server log:
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 12.1)
- Shut down the Management CLI and shut down the server.
Verify the Driver Installation
Check you standalone.xml file. You should now see something like this:
Configure the JNDI Datasource
Within the same subsystem your driver is configured, you can now declare the JNDI datasource.
Verify the JNDI Datasource
Once you have added the JNDI datasource declaration into your standalone.xml you should now be ready to use it. To verify that start the server back up and look for the following in the log:
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-15) JBAS010400: Bound data source [java:jboss/datasources/jackrabbit]
Now you're ready to deploy Magnolia. You can refer to your JNDI datasource in your JR repo config file.