java - 无法实例化驱动程序类 "com.mysql.cj.jdbc.Driver": when deploying war file in jboss

标签 java mysql jakarta-ee jboss jboss7.x

我创建了一个 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]

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

 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索引类

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>

关于java - 无法实例化驱动程序类 "com.mysql.cj.jdbc.Driver": when deploying war file in jboss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56668222/

相关文章:

java - java中的正则表达式删除=之前和之后的空格

php - 为什么我的搜索栏不显示结果?

mysql对小数据集的慢查询

javax.servlet.ServletContext.getContextPath()Ljava/lang/String

java - 实现线程接口(interface)

java - Java 中的桌面应用程序

java - 适用于 Android 的 firebase 云存储和 firestore 上传

MySQL "Distinct"加入超慢

java - 如何在 Tomcat 中运行 Java EE 项目?

mysql - 如何获取保存在数据库中的文本的哈希值