我正在使用 GlassFish 5.0.0 開發(fā) JavaEE 8 應(yīng)用程序,并且我想訪問(wèn)駐留在 Microsoft SQL 服務(wù)器中的數(shù)據(jù)庫(kù)。我在 Maven 中附加了 Microsoft SQL 驅(qū)動(dòng)程序 7.0 jre8。當(dāng)我部署應(yīng)用程序并嘗試打開訪問(wèn)數(shù)據(jù)庫(kù)的頁(yè)面時(shí),我崩潰了。下面的堆棧跟蹤。java.lang.NoSuchMethodError: sun.security.internal.spec.TlsMasterSecretParameterSpec.getExtendedMasterSecretSessionHash()[Bat 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)觸發(fā)崩潰的代碼在這里: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 設(shè)置為 Project SDK。我還在 GlassFish 5 管理面板的 JDBC 連接池中設(shè)置了 javax.sql.DataSource 和 java.sql.driver。我不知道為什么會(huì)發(fā)生這種情況。我在互聯(lián)網(wǎng)上的任何地方都找不到我的錯(cuò)誤。請(qǐng)幫我解決這個(gè)問(wèn)題。如果需要,我可以提供更多信息(只要不是個(gè)人信息)。謝謝你。編輯:其實(shí)我忘了測(cè)試連接池。在我嘗試通過(guò) Glassfish 5 管理面板“ping”之后,我遇到了與上面堆棧跟蹤中的錯(cuò)誤相同的錯(cuò)誤。
2 回答

慕森王
TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
我決定完全放棄 Glassfish(因?yàn)閾?jù)我所知,在撰寫本文時(shí),Glassfish 已經(jīng)過(guò)時(shí)了)并使用Apache TomEE(Web 服務(wù)版本)作為 Web servlet。
即使使用最新的 JDK (1.8.0_181),它也能正常工作!不再有關(guān)于 MSSQL 的錯(cuò)誤。
添加回答
舉報(bào)
0/150
提交
取消