无法实例化驱动程序 class "com.mysql.cj.jdbc.Driver":在 jboss 中部署 war 文件时

Unable to instantiate driver class "com.mysql.cj.jdbc.Driver": when deploying war file in jboss

我创建了一个 Web 应用程序,数据库连接 是使用简单的 jdbc 连接 机制处理的。构建 WAR 文件后,我验证了 WEB-INF/lib 是否具有 mysql 连接器 库在那里,我正在使用 mysql 1.8 java 连接器。但是当我尝试在 jboss 中部署应用程序时,我收到了一些错误和警告。项目是从 java 1.7 构建的,jboss 服务器使用相同的 jdk 版本运行。

Unable to instantiate driver class "com.mysql.cj.jdbc.Driver": 
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver from [Module 
"deployment.NEWAPPLICATION.war:main" from Service Module Loader]

我不知道为什么我会收到此错误 cz mysql 连接器可以在 class 路径上找到,我在同一堆栈跟踪中遇到的另一个问题是这个

 Failed to define class com.mysql.cj.jdbc.Driver in Module 
 "deployment.NEWAPPLICATION.war:main" from Service Module Loader: 
 java.lang.UnsupportedClassVersionError: com/mysql/cj/jdbc/Driver : 
 Unsupported major.minor version 52.0

并且有很多日志说无法从 com/mysql/cj

索引 classes
Could not index class com/mysql/cj/MysqlxSession.class at 
 /content/NEWAPPLICATION.war/WEB-INF/lib/mysql-connector-java-8.0.16.jar: 
 java.lang.IllegalStateException: Unknown tag! pos=32 poolCount = 334

我并没有真正使用 WAR 应用程序,也没有真正使用 Jboss 服务器。我无法自己解决这个问题,我们将不胜感激。

您说您使用的是 Java 1.7,但看起来 MySQL 驱动程序是使用 Java 1.8 编译的。要么升级你的 JRE,要么找到与 Java 1.7 兼容的驱动程序。您需要 Connector/J 5.1,而不是 8。您可以在 The MySQL Archive

找到它

编辑:如果您使用的是 Maven,则可以使用此人工制品:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
</dependency>