Невозможно подключить MySQL к приложению Java с помощью Eclipse + Wildly 14.0 - PullRequest
0 голосов
/ 21 октября 2019

Я не могу подключить приложение Java к локальной базе данных MySQL 8 под управлением macOS. Я использую Eclipse и развертывание на WildFly 16.0. При развертывании моего приложения консоль выдает следующую ошибку

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

My WildFly/modules/system/layers/base/com/mysql/main/module.xml содержит следующее:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.mysql">
    <resources>
        <resource-root path="mysql-connector-java-8.0.18.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>

Также в этом каталоге находится мой соединитель Java с тем же именем, что изаявлено в файле.

И мой standalone/configuration/standalone.xml содержит:

<datasource jndi-name="java:jboss/datasources/MYAPP" pool-name="MYAPP" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
                    <connection-url>jdbc:mysql://localhost:3306/MYAPP</connection-url>
                    <driver>com.mysql</driver>
                    <security>
                        <user-name>root</user-name>
                        <password>MYPASS</password>
                    </security>
                </datasource>

...


<drivers>
                    <driver name="com.mysql" module="com.mysql">
                        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
                    </driver>
                </drivers>

А внутри моего проекта Eclipse внутри Java Resouces/src/META-INF/persistence.xml содержится:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="MYAPP">
        <jta-data-source>java:jboss/datasources/MYAPP</jta-data-source>
        <class>dl.USER</class>
        <class>dl.POST</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="validate"/>      
        </properties>   
    </persistence-unit>
</persistence>

Я не вижу, что этонеправильно с этим, но что касается журнала, прикрепленного выше, он не может найти соединитель MySQL.

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Попробуйте изменить атрибут имени в определении <driver> на обычный mysql

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

, а также соответствующую ссылку в разделе <datasource>

<driver>mysql</driver>

Похоже, что из-за того, что элемент name имеет тип xs: токен, точка каким-то образом заменяется подчеркиванием.

0 голосов
/ 22 октября 2019

Здравствуйте, проблема заключается в названии модуля:

<module xmlns="urn:jboss:module:1.1" name="com.mysql">

И вы пытаетесь подключиться к:

"jboss.jdbc-driver.com_mysql
...