Wildfly 10.1.0 - Mysql Datasource not found

9.2k views Asked by At

I know, this question is founded on all google and stackoverflow, but my problem isn't solved and I didn't find the solution =/

So, it is simple, my WildFly seems to don't see my mysql connector.

I try to use mysql-connector-java-5.1.38

module.xml (wildfly-10.1.0.Final\modules\system\layers\base\com\mysql\main)

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.mysql">
    <resources>
        <resource-root path="mysql-connector-java-5.1.38.jar"/>
    </resources>

    <dependencies>
        <modue name="javax.api"/>
    </dependencies>
</module>

Tried with and without ".jar" on mysql-connector-java-5.1.38

Datasource

<datasources>
    <datasource jndi-name="java:/budget-datasource" pool-name="budget-datasource" enabled="true" use-java-context="true" use-ccm="true">
        <connection-url>jdbc:mysql://127.0.0.1:3306/budget?zeroDateTimeBehavior=convertToNull</connection-url>
        <driver>mysql</driver>
        <security>
            <user-name>root</user-name>
        </security>
    </datasource>
    <drivers>
        <driver name="mysql" module="com.mysql">
            <xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class>
        </driver>
    </drivers>
</datasources>

I tried to replace

<xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class>

by

<driver>com.mysql.jdbc.Driver</driver>

but didn't work

The complete interesting stacktrace ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 33) WFLYCTL0013: Operation ("add") failed - address: ([ ("subsystem" => "datasources"), ("jdbc-driver" => "mysql")

ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "budget-datasource")
]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.jdbc-driver.mysql"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "org.wildfly.data-source.budget-datasource is missing [jboss.jdbc-driver.mysql]",
        "jboss.driver-demander.java:/budget-datasource is missing [jboss.jdbc-driver.mysql]"
    ]
}

ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "budget-datasource")
]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => [
        "jboss.jdbc-driver.mysql",
        "jboss.jdbc-driver.mysql"
    ],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "org.wildfly.data-source.budget-datasource is missing [jboss.jdbc-driver.mysql]",
        "jboss.driver-demander.java:/budget-datasource is missing [jboss.jdbc-driver.mysql]",
        "org.wildfly.data-source.budget-datasource is missing [jboss.jdbc-driver.mysql]"
    ]
}

INFO  [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183: Service status report
WFLYCTL0184:    New missing/unsatisfied dependencies:
      service jboss.jdbc-driver.mysql (missing) dependents: [service jboss.driver-demander.java:/budget-datasource, service org.wildfly.data-source.budget-datasource] 

I use Eclipse Mars to developp, need to configure the project to use mysql connector ?

In advance, thanks lot and lot for help, I'm so lost

I found the solution :

<modue name="javax.api"/>

<module name="javax.api"/>
4

There are 4 answers

0
Quincy On

Other then creating a mysql module, try the alternative way:

1)Deploy the jar mysql-connector-java-5.1.38.jar on Wildfly

2)Set the datasource as below

 <datasources>
    <datasource jndi-name="java:/budget-datasource" pool-name="budget-datasource" enabled="true" use-java-context="true" use-ccm="true">
        <connection-url>jdbc:mysql://127.0.0.1:3306/budget?zeroDateTimeBehavior=convertToNull</connection-url>
        <driver-class>com.mysql.jdbc.Driver</driver-class>
        <driver>mysql-connector-java-5.1.38.jar</driver>
        <security>
            <user-name>root</user-name>
        </security>
    </datasource>
</datasources>
0
Mzukisi Luzombe On

On your model.xml simply define:

<resources>
    <resource-root path="mysql-connector-java-8.0.11.jar"/>
</resources>

<dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
</dependencies>

0
Michael On
Absent one mandatory step : you need to reference the module as a driver in WildFly configuration with the following jboss-cli command.

The Command Line

All admin operations can be also done through the command line. To activate WildFly command line prompt start WildFly, go to the WILDFLY_HOME/bin folder and execute the command:

#> jboss-cli.sh(.bat) --connect

It connects to localhost and port 9990 by default. The prompt looks like [standalone@localhost:9990 /], indicating it is ready to accept admin commands. Type quit when you are done. Command line examples are spreaded througout the text. Before using them, please remove all line breaks and identation spaces, making them a continous text string. For example:

Instead of doing exactly this:

[standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=mysql:add(
    driver-name=mysql,
    driver-module-name=com.mysql,
    driver-class-name=com.mysql.jdbc.Driver
)

You should do this:

[standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-class-name=com.mysql.jdbc.Driver)

This will solve the problem and the drive appears in the list of registered drivers into WildFly 10

0
Assane Seck On

One solution for this problem: edit standalone.xml, in the bloc add this line

<driver name="mysql" module="com.mysql"/>

Example

<drivers>
        <driver name="mysql" module="com.mysql"/>
</drivers>`