Skip to content

Instantly share code, notes, and snippets.

@jmesnil
Last active April 2, 2024 12:43
Show Gist options
  • Save jmesnil/60384821d3c869a813c51c03ccb0cead to your computer and use it in GitHub Desktop.
Save jmesnil/60384821d3c869a813c51c03ccb0cead to your computer and use it in GitHub Desktop.
WildFly with Oracle JDBC driver
$ ls .
Dockerfile      module.xml      ojdbc11.jar

$ cat module.xml

<module xmlns="urn:jboss:module:1.9" name="com.oracle">
    <resources>
      <resource-root path="ojdbc11.jar"/>
    </resources>
    <dependencies>
      <module name="javax.api"/>
      <module name="javax.transaction.api"/>
    </dependencies>
  </module>

$ cat Dockerfile

FROM quay.io/wildfly/wildfly:28.0.1.Final-jdk17

COPY module.xml $JBOSS_HOME/modules/com/oracle/main/
COPY ojdbc11.jar $JBOSS_HOME/modules/com/oracle/main/

$ docker build -t wildfly-with-oracle .
$ docker run -p 8080:8080 wildfly-with-oracle:latest

For the next command, replace d437c231ccf9 with your own container ID (from docker ps)

$ docker exec -it d437c231ccf9 /opt/jboss/wildfly/bin/jboss-cli.sh -c

[standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=oracle:add(driver-module-name=com.oracle)
{"outcome" => "success"}

In the logs from WildFly, you will see:

09:29:57,135 INFO  [org.jboss.as.connector.subsystems.datasources] (management-handler-thread - 1) WFLYJCA0004: Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 23.3)
09:29:57,135 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-4) WFLYJCA0018: Started Driver service with driver-name = oracle

=> that shows tha the oracle driver was properly created from the com.oracle JBoss Module

@jmesnil
Copy link
Author

jmesnil commented Mar 21, 2024

When you have built and run your image, could you run

docker exec -it 06c223e348db ls /opt/jboss/wildfly/modules/com/oracle/main

to make sure that module.xml &ojdbc11.jar are in that directory?

@jreed-cartago
Copy link

Yep they are there.

docker exec -it wildfly28_24.2.0 ls /opt/jboss/wildfly/modules/com/oracle/main
module.xml  ojdbc11.jar

@jmesnil
Copy link
Author

jmesnil commented Mar 21, 2024

I'm starting to run out of ideas...
Could the ojdbc11.jar have been corrupted when you download it. Does it jar tvf correctly?

I'm not familiar with docker compose but if you can drop its configuration I might see what could cause the issue

@jreed-cartago
Copy link

jreed-cartago commented Mar 21, 2024

It's possible there's something wrong with the jar file. I can download a fresh copy and see how that works.

Here is my docker-compose.yml file. It's pretty simple compared:

cartago@nunki:~/docker-files/wildfly28$ cat docker-compose.yml
services:
  wildfly28:
    user: "1000:1000"
    container_name: wildfly28_24.2.0
    image: wildfly28_dev:JDK17
    restart: unless-stopped
    ports:
      - "50080:8080"
    volumes:
      - /home/cartago/wildfly-home/wildfly28/24.2.0/deployments:/opt/jboss/wildfly/standalone/deployments
      - /home/cartago/wildfly-home/wildfly28/24.2.0/log:/opt/jboss/wildfly/standalone/log
      - /home/cartago/cartago-home:/opt/cartago-home

What I've omitted here was my mapping for the /opt/jboss/wildfly/standalone/configuration folder which would be mapped similar to the deployments and logs mapping. The cartago-home mapping is for our application once I get to the point where I can attempt to deploy it. This is simply a test environment for my team so I don't need to embedd it also in the image.

Update:
I downloaded a new copy of the ojdbc11.jar from Maven and it's still not working. Same error when I attempt to add the module via cli.

@jreed-cartago
Copy link

Once again I want to thank you for your assistance. Today it finally dawned on me what I did wrong. I made a typo in the module.xml which was so small it was easy to miss.

module xmlns="urn:joss:module:1.9" name="com.oracle"

Basically in the namespace I forgot the b in jboss. I can't believe that this was my problem. It works now and I'm getting the Success when I perform the manual adding of the oracle module.

@jmesnil
Copy link
Author

jmesnil commented Apr 2, 2024

@jreed-cartago Great that it works now!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment