首页 文章

Wildfly 10.1.0 - 找不到Mysql数据源

提问于
浏览
1

我知道,这个问题是 Build 在所有谷歌和stackoverflow,但我的问题没有解决,我没有找到解决方案= /

所以,很简单,我的WildFly似乎没有看到我的mysql连接器 .

我尝试使用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>

在mysql-connector-java-5.1.38上尝试使用和不使用“.jar”

数据源

<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>

我试着替换

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

通过

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

但没有奏效

完整有趣的堆栈跟踪ERROR [org.jboss.as.controller.management-operation](ServerService线程池 - 33)WFLYCTL0013:操作(“添加”)失败 - 地址:([(“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]

我使用Eclipse Mars来开发,需要配置项目才能使用mysql连接器吗?

在此之前,非常感谢你们的帮助,我很失落

我找到了解决方案:

<modue name="javax.api"/>

<module name="javax.api"/>

3 回答

  • 0

    除了创建一个mysql模块,尝试另一种方式:

    1)在Wildfly上部署jar mysql-connector-java-5.1.38.jar

    2)如下设置数据源

    <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>
    
  • 1
    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)
    

    这将解决问题,驱动器出现在WildFly 10的已注册驱动程序列表中

  • 1

    在您的model.xml上,只需定义:

    <resources>
        <resource-root path="mysql-connector-java-8.0.11.jar"/>
    </resources>
    
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
    

相关问题