"WFLYCTL0412: Required services that are not installed:" => ["jboss.jdbc-driver.mysql"]

Viewed 16389

I am trying to add a mysql datasource to my wildfly(Jboss15.0.0) server. But I encounter the following error:

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

Here is my module.xml:

<module xmlns="urn:jboss:module:1.0" name="mysql">
    <resources>
        <resource-root path="mysql-connector-java-5.1.46-bin.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

and here is my code to set the datasource:

    <datasources>
                    <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
                        <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
                        <driver>h2</driver>
                        <security>
                            <user-name>sa</user-name>
                            <password>sa</password>
                        </security>
                    </datasource>
                    <datasource jta="true" jndi-name="java:/MySqlDS" pool-name="MySqlDS" use-java-context="true" use-ccm="true">
                        <connection-url>jdbc:mysql://localhost:3306/onlinestock?characterEncoding=UTF8&amp;useSSL=false&amp;serverTimezone=GMT%2B8&amp;allowPublicKeyRetrieval=true</connection-url>
                        <driver>mysql</driver>
                        <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                        <pool>
                            <prefill>true</prefill>
                            <use-strict-min>false</use-strict-min>
                            <flush-strategy>FailingConnectionOnly</flush-strategy>
                        </pool>
                        <security>
                            <user-name>root</user-name>
                            <password>root</password>
                        </security>
                    </datasource>
                    <drivers>
                        <driver name="h2" module="com.h2database.h2">
                            <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                        </driver>
                        <driver name="mysql" module="com.mysql">
                            <xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class>
                        </driver>
                    </drivers>
</datasources>

Why the server can not see my mysql-connector. the module.xml is under the floder of JBOSS_HOME/..../modules/..../mysql/main

2 Answers

I change the standalone.xml and it works set the tag in this way:

<driver name="mysql" module="com.mysql">
                        <driver-class>com.mysql.cj.jdbc.Driver</driver-class>
                        <xa-datasource-class>com.mysql.cj.jdbc.MysqlXADataSource</xa-datasource-class>
</driver>

That's to say I add the tag and change the content of

Your server is not able to find my sql jar please confirm that you have to put my sql jar in server folder also. If not please put inside modules folder with module.xml.

Related