我从这里开始尝试微软官方的JDBC驱动程序:https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc尝试了最新的和最旧的,甚至是其他随机的驱动程序,仍然没有成功。
我得到了这个错误:
java.lang.NoClassDefFoundError: sun/security/ssl/HandshakeStateManager
javax.el.ELException: java.lang.NoClassDefFoundError: sun/security/ssl/HandshakeStateManager我还尝试了其他类似的建议:https://stackoverflow.com/a/64386147/13924032删除了sun文件夹,但仍然出现相同的错误。
这是我正在使用的依赖项
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.0.jre8</version>
</dependency>另外,我的连接代码是:
public void ConectarSQL() {
try {
Class.forName(driver);
con = DriverManager.getConnection(url);
if(con != null) {
DatabaseMetaData metaObj = (DatabaseMetaData) con.getMetaData();
System.out.println("Driver Name?= " + metaObj.getDriverName() + ", Driver Version?= " + metaObj.getDriverVersion() + ", Product Name?= " + metaObj.getDatabaseProductName() + ", Product Version?= " + metaObj.getDatabaseProductVersion());
}
} catch(ClassNotFoundException | SQLException sqlException) {
sqlException.printStackTrace();
}
}DataBaseMetaData只是用于测试连接。
我是不是遗漏了什么?这是我第一次使用maven,在使用简单的java项目时没有遇到任何问题。
我使用的是glassfish server5JavaEE8WebJSF2.3JDK1.8 (1.8.0_131)
发布于 2021-01-22 23:04:22
对于任何遇到同样问题的人来说。我通过下载并设置一个新的glassfish服务器(v5.1.0),还安装了JDK 1.8_281,并显式地将glassfish服务器设置为与JDK 1.8_281一起运行,成功地让它运行起来。在这之后,我再也没有得到这个错误。由于某些原因,最新的驱动程序不能在这种配置下工作,我不知道为什么,但7.4.1jre8做了这项工作。
https://stackoverflow.com/questions/65832219
复制相似问题