如何解决无法使用带有 Maven 的 JSF 项目连接到 MS SQL
我一直在尝试使用 Microsoft 官方 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 服务器 5 Java EE 8 网页版 JSF 2.3 JDK 1.8 (1.8.0_131)
解决方法
对于遇到同样问题的任何人。我设法通过下载和设置一个新的 glassfish 服务器 (v5.1.0) 来运行它,还安装了 JDK 1.8_281,并明确设置了 glassfish 服务器以运行 JDK 1.8_281。 在此之后,我不再收到错误消息。 出于某种原因,最新的驱动程序由于某种原因无法使用此配置,我不知道为什么,但 7.4.1jre8 完成了这项工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。