首页 文章

已安装MySQL驱动程序,但getConnection抛出找不到合适的驱动程序

提问于
浏览
0

我有一个全新安装的Wildfly 10应用服务器以独立模式运行 . 我需要部署一个需要MySQL JDBC驱动程序的项目 . 我按照JDBC Driver Setup中找到的教程安装了驱动程序(我选择了模块安装) . 重新启动WildFly后,在 console.log 中我读到:

INFO [org.jboss.as.connector.subsystems.datasources](ServerService线程池 - 33)WFLYJCA0005:部署非JDBC兼容的驱动程序类com.mysql.jdbc.Driver(版本5.1)INFO [org.jboss . as.connector.deployers.jdbc](MSC服务主题1-6)WFLYJCA0018:使用driver-name = mysql启动驱动程序服务

看起来一切都很好,但我无法获得数据库的连接 . 我正在使用这段代码:

Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbName?user=someUser&password=somePass");

第一行抛出异常:

com.mysql.jdbc.Driver来自[Module“deployment.someProject-1.0.0.war:main from Service Module Loader]”

如果我注释掉第一行,我得到没有合适的驱动程序异常 .

你有什么主意吗?谢谢你的建议

2 回答

  • 2

    您需要在刚刚创建的MySQL模块上为WAR添加依赖项 .

    有两种方法,在WAR中使用MANIFEST.MF文件,并使用行依赖项:com.mysql

    或者使用jboss-dependencies XML文件,如:

    <jboss-deployment-structure>
    
       <deployment>
    
          <dependencies>
             <module name="com.mysql" />
          </dependencies>
    
       </deployment>
    </jboss-deployment-structure>
    

    两者都应放在WAR文件的META-INF目录中 . 应该有Maven插件可以为你创建 .

  • 1

    我有个主意 .

    据我所知,WildFly模块默认情况下不会出现在应用程序中 . 我想你需要让你的应用知道MySql模块 .

    如果你有WAR需要在WEB-INF文件夹中创建文件jboss-deployment-structure.xml,其内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <jboss-deployment-structure>
      <deployment>
        <dependencies>
          <module name="mysql" />      
        </dependencies>    
      </deployment>
    </jboss-deployment-structure>
    

相关问题