【问题标题】:JBoss error: org.jboss.as.controller.management-operation] (Controller Boot Thread)JBoss 错误:org.jboss.as.controller.management-operation](控制器引导线程)
【发布时间】:2016-06-21 07:32:15
【问题描述】:

在配置 mysql 依赖项后尝试运行我的 JBOSS,但出现此错误

09:49:00,138 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "TripTicketDS")
]) - failure description: {"WFLYCTL0180: Services with missing/unavailable dependencies" => [
    "jboss.data-source.java:jboss/datasources/TripTicketDS is missing [jboss.jdbc-driver.mysql]",
    "jboss.driver-demander.java:jboss/datasources/TripTicketDS is missing [jboss.jdbc-driver.mysql]"
]}
09:49:00,149 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "TripTicketDS")
]) - failure description: {"WFLYCTL0180: Services with missing/unavailable dependencies" => [
    "jboss.data-source.java:jboss/datasources/TripTicketDS is missing [jboss.jdbc-driver.mysql]",
    "jboss.driver-demander.java:jboss/datasources/TripTicketDS is missing [jboss.jdbc-driver.mysql]",
    "jboss.data-source.java:jboss/datasources/TripTicketDS is missing [jboss.jdbc-driver.mysql]"
]}

我的standalone.xml配置如下

<datasource jndi-name="java:jboss/datasources/TripTicketDS" pool-name="TripTicketDS" enabled="true" use-java-context="true">
    <connection-url>jdbc:mysql://localhost:3306/trip_ticket</connection-url>
    <driver>mysql</driver>
    <security>
        <user-name>root</user-name>
        <password></password>
    </security>
</datasource>

我的 SQL module.xml 文件看起来像这样

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

【问题讨论】:

  • 你能发布你的完整module.xml吗?需要注意的是,您还需要依赖 javax.transaction.api
  • 这是我的 module.xml 文件
  • 嗨,我现在在使用 wildfly 10 时遇到了同样的问题。您找到解决方案了吗?谢谢

标签: wildfly-9


【解决方案1】:

尝试使用 jboss-cli.sh 命令创建模块本身,而不是手动编写 module.xml 文件。这是因为当我们使用一些文本编辑器时,它们可能会将一些隐藏字符附加到我们的文件中。 (特别是当我们在此类编辑器中进行复制和粘贴时)

[standalone@localhost:9990 /]  module add --name=com.mysql.driver  --dependencies=javax.api,javax.transaction.api --resources=/PATH/TO/mysql-connector-java-5.1.35.jar  

[standalone@localhost:9990 /] :reload  
{  
    "outcome" => "success",  
    "result" => undefined  
}  

运行上述命令后,您应该会在以下位置看到生成的 module.xml:“wildfly-version.Final/modules/com/mysql/driver/main/module.xml”

现在创建数据源:

[standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=mysql/:add(driver-module-name=com.mysql.driver,driver-name=mysql,jdbc-compliant=false,driver-class-name=com.mysql.jdbc.Driver)  
{"outcome" => "success"}  

【讨论】:

    【解决方案2】:

    您的驱动程序名称不正确。它需要与您的模块名称相同,即com.sql.mysql

    我建议不要编辑 XML,而是使用 CLI 或 Web 控制台来添加数据源。使用 CLI,您还可以添加模块。

    module add --name=com.mysql --resources=~/Downloads/mysql-connector-java-5.1.37/mysql-connector-java-5.1.37-bin.jar --dependencies=javax.api,javax.transaction.api
    
    /subsystem=datasources/jdbc-driver=com.mysql:add(driver-name=com.mysql, driver-module-name=com.mysql, driver-xa-datasource-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource)
    /subsystem=datasources/data-source=TripTicketDS:add(driver-name=com.mysql, jndi-name="java:jboss/datasources/TripTicketDS", enabled=true, connection-url="jdbc:mysql://localhost:3306/trip_ticket", user-name=root, password="mypassword")
    

    【讨论】:

    • 这是一个 CLI 命令,因此您只需使用 %JBOSS_HOME\bin\jboss-cli.bat。你只需要替换资源路径。
    猜你喜欢
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多