我有一个全新安装的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 回答
您需要在刚刚创建的MySQL模块上为WAR添加依赖项 .
有两种方法,在WAR中使用MANIFEST.MF文件,并使用行依赖项:com.mysql
或者使用jboss-dependencies XML文件,如:
两者都应放在WAR文件的META-INF目录中 . 应该有Maven插件可以为你创建 .
我有个主意 .
据我所知,WildFly模块默认情况下不会出现在应用程序中 . 我想你需要让你的应用知道MySql模块 .
如果你有WAR需要在WEB-INF文件夹中创建文件jboss-deployment-structure.xml,其内容如下: