我在項目中使用jre6和NSS(版本3.4.12),它工作正常。NSS不能使用Java 7更新6
我最近更新到jre7更新6(發佈2012年8月14日),並突然應用程序停止工作,給出以下例外。
java.lang.UnsatisfiedLinkError: sun.security.pkcs11.wrapper.PKCS11.C_GetOperationState(J)[B
at sun.security.pkcs11.wrapper.PKCS11.C_GetOperationState(Native Method)
at sun.security.pkcs11.P11Digest.clone(P11Digest.java:308)
at java.security.MessageDigest$Delegate.clone(Unknown Source)
at sun.security.ssl.HandshakeHash.cloneDigest(Unknown Source)
at sun.security.ssl.HandshakeHash.getMD5Clone(Unknown Source)
at sun.security.ssl.HandshakeMessage$Finished.getFinished(Unknown Source)
at sun.security.ssl.HandshakeMessage$Finished.<init>(Unknown Source)
at sun.security.ssl.ClientHandshaker.sendChangeCipherAndFinish(Unknown Source)
at sun.security.ssl.ClientHandshaker.serverHelloDone(Unknown Source)
at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
at sun.security.ssl.Handshaker.processLoop(Unknown Source)
at sun.security.ssl.Handshaker.process_record(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
如果我使用jre 7 update 5,它的工作正常!我經歷了更新6 http://www.oracle.com/technetwork/java/javase/7u6-relnotes-1729681.html的發行說明,我找不到任何可能導致的結果。
任何幫助表示讚賞。
當我比較了來自更新的Java源代碼的5至6,我已發現,在更新6,sun.security.pkcs11.wrapper.P11Digest.java已經新實施克隆(),其試圖調用本機方法PKCS11。 C_GetOperationState這也是在更新6中新添加的。 我不知道他們是否可以像這樣添加本地方法。另外我沒有看到更新6修訂歷史中的任何此類提及。 對我來說,它看起來像PKCS11接口在jre7更新6中被破壞 –