微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用带有 Maven 的 JSF 项目连接到 MS SQL

如何解决无法使用带有 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 举报,一经查实,本站将立刻删除。