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

时间:2016-05-04 13:32:13

标签: java jdbc jboss wildfly mysql-connector

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

  

INFO [org.jboss.as.connector.subsystems.datasources](ServerService   线程池 - 33)WFLYJCA0005:部署不符合JDBC的驱动程序   class 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:主   来自服务模块加载器]"

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

你知道吗?谢谢你的建议

2 个答案:

答案 0 :(得分: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 :(得分: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>