【问题标题】:Unable to add MySQL data source to WildFly无法将 MySQL 数据源添加到 WildFly
【发布时间】:2021-06-03 12:35:09
【问题描述】:

我在将 MySQL 数据源添加到 WildFly 时遇到了一些问题。我已经安装(可能不正确?)如下所示的 MySQL 驱动程序:

然后,当我去添加数据源时,可用驱动程序名称列表中缺少 MySQL:

我怀疑我的驱动程序安装不正确,因为我的第一个屏幕截图中缺少驱动程序版本,并且在 JDBC 兼容下没有显示任何内容。不知道这是否正常。

我已按照许多指南安装驱动程序,这就是我的做法。我从https://dev.mysql.com/downloads/connector/j/ 下载了驱动程序。驱动位于以下文件路径:

wildfly-22.0.0.Final\modules\system\layers\base\com\mysql\main

这就是文件夹结构的样子:

这是module.xml的内容:

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

这就是standalone.xml 中相关驱动部分的样子(包括看起来工作正常的h2 和derby-main 驱动):

<drivers>
   <driver name="h2" module="com.h2database.h2">
      <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
   </driver>
   <driver name="derby-mem" module="org.apache.derby.mem"/>
   <driver name="mysql" module="com.mysql">
      <driver-class>com.mysql.jdbc.Driver</driver-class>
      <xa-datasource-class>
         com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
      </xa-datasource-class>
   </driver>
</drivers>

我必须在这里遗漏一些明显的东西。

【问题讨论】:

    标签: java mysql jdbc wildfly datasource


    【解决方案1】:

    我强烈建议为此使用脚本而不是 UI。更易于维护和升级。

    创建一个名为 create_resources.cli 的文件,其中包含:

    embed-server --server-config=standalone.xml --std-out=echo
        
    batch
    
    #
    # add the module
    #
    module add --name=com.mysql --resources=${user.home}/Downloads/mysql-connector-java-8.0.23/mysql-connector-java-8.0.23.jar --dependencies=javax.api,javax.transaction.api
    
    #
    # create the driver
    #
    /subsystem=datasources/jdbc-driver=mysql:add(driver-name="mysql",driver-module-name="com.mysql",driver-class-name=com.mysql.cj.jdbc.Driver)
    
    #
    # create the datasource
    #
    /subsystem=datasources/data-source=YourDSName/:add(connection-url=jdbc:mysql://localhost:3306/yourDBName,driver-name=mysql,jndi-name=java:jboss/datasources/YourDSName,password=thepassword,user-name=theuser)
    
    run-batch
    

    现在,在 Wildfly 停止的情况下,切换到 Wildfly 安装目录并运行

    bin\jboss-cli.bat --file=create_resources.cli
    

    这将执行以下操作:

    1. 为您添加模块。我在您的主目录的Downloads 目录中有驱动程序。显然,它可以在您想要的任何地方。
    2. 添加名为“mysql”的驱动程序
    3. 添加一个名为“YourDSName”的数据源。

    这样做的好处是您无需运行 UI 即可添加数据源。此外,我不断更改我的 Wildfly 安装版本以及特定版本中安装的内容。这样您就可以非常快速地重新生成更改。

    【讨论】:

    • 完美,大功告成!你是对的,这是创建资源的更好方法,我将继续使用它。非常感谢!
    猜你喜欢
    • 2015-03-09
    • 2015-09-22
    • 2018-08-06
    • 1970-01-01
    • 2016-03-14
    • 2017-05-03
    • 2014-09-19
    • 1970-01-01
    • 2015-12-19
    相关资源
    最近更新 更多