$ 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
Ok so I've double checked my module.xml to ensure it looks like the one you've posted above.
As I mentioned over on mastadon I was originally using a
ojdbc8.jar
which I thought might have been a problem but I've corrected this.I also made sure my dockerfile was correct as per your example above.
Now here is the difference between your implementation and mine. I'm using a docker-compose.yml file as I wanted to handle the port and volumes. In particular for configuration of the
standalone.xml
. So under the datasources subsystem I've added in the following entry under driversAnd I've also added a datasource element that uses the driver oracle, with the correct connection url, and security information.
Is there something I'm missing here?