使用 Glassfish 打开与 Microsoft SQL 的连接时崩溃

我正在使用 GlassFish 5.0.0 开发 JavaEE 8 应用程序,并且我想访问驻留在 Microsoft SQL 服务器中的数据库。我在 Maven 中附加了 Microsoft SQL 驱动程序 7.0 jre8。


当我部署应用程序并尝试打开访问数据库的页面时,我崩溃了。下面的堆栈跟踪。


java.lang.NoSuchMethodError: sun.security.internal.spec.TlsMasterSecretParameterSpec.getExtendedMasterSecretSessionHash()[B

at com.sun.crypto.provider.TlsMasterSecretGenerator.engineGenerateKey(TlsMasterSecretGenerator.java:107)

at javax.crypto.KeyGenerator.generateKey(KeyGenerator.java:546)

at sun.security.ssl.Handshaker.calculateMasterSecret(Handshaker.java:1174)

at sun.security.ssl.Handshaker.calculateKeys(Handshaker.java:1120)

at sun.security.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:1126)


触发崩溃的代码在这里:


public class DatabaseDatas {

private final static String sqlconn = "jdbc:sqlserver://<redacted>;" +

        "databaseName=dbName";


/**

 * Gets Lelang data in LelangList

 * @return Data in LelangList table

 */

public static ResultSet getLelang(){

    try {

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

        Connection sqlconnection = DriverManager.getConnection(sqlconn,"sa","password"); //this is the one which trigger the crash

        sqlconnection.isValid(0); //ignore this

        Statement sta = sqlconnection.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);

        String sql = "SELECT * FROM ListLelang";

        return sta.executeQuery(sql);

    } catch (ClassNotFoundException|SQLException e) {

        e.printStackTrace();

    }

    return null;

}

我使用 Jetbrains Intellij IDEA 2018.2.3 作为 IDE,并将 JDK 1.8.0_151 设置为 Project SDK。我还在 GlassFish 5 管理面板的 JDBC 连接池中设置了 javax.sql.DataSource 和 java.sql.driver。


我不知道为什么会发生这种情况。我在互联网上的任何地方都找不到我的错误。请帮我解决这个问题。如果需要,我可以提供更多信息(只要不是个人信息)。谢谢你。


编辑:其实我忘了测试连接池。在我尝试通过 Glassfish 5 管理面板“ping”之后,我遇到了与上面堆栈跟踪中的错误相同的错误。


跃然一笑
浏览 286回答 2
2回答

慕森王

我决定完全放弃 Glassfish(因为据我所知,在撰写本文时,Glassfish 已经过时了)并使用Apache TomEE(Web 服务版本)作为 Web servlet。即使使用最新的 JDK (1.8.0_181),它也能正常工作!不再有关于 MSSQL 的错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java