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

时间:2019-06-19 12:57:55

标签: java mysql java-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]

我不知道为什么我会在类路径中找到此错误cz 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服务器中也没有太多工作。我无法自己弄清楚,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您说您正在使用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>