升级Java后无法找到Sun.security

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了升级Java后无法找到Sun.security相关的知识,希望对你有一定的参考价值。

我有一个使用Play 2.0创建的应用程序。我实现了scribe-java库来使用一些OAuth服务。直到今天一切都很好,但是当我升级jdk并重新启动服务器时,我无法使用scribe-java库。它似乎在sun.security包中使用了像sun/security/pkcs11/P11Keysun/security/pkcs11/Length这样的类,却找不到它。

“java -version”返回:

java版“1.7.0_03”

OpenJDK运行时环境(IcedTea7 2.1.1pre)(7~u3-2.1.1~pre1-1ubuntu3)

OpenJDK 64位服务器VM(内置22.0-b10,混合模式)

Play 2.0 stacktrace:

! @6bk5o8md2 - Internal server error, for request [GET /user/service/google/oauth_callback/?code=[SECRET]] ->

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[NoClassDefFoundError: sun/security/pkcs11/P11Key]]
        at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [play_2.9.1.jar:2.0.2]
        at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [play_2.9.1.jar:2.0.2]
        at akka.actor.Actor$class.apply(Actor.scala:318) [akka-actor.jar:2.0.2]
        at play.core.ActionInvoker.apply(Invoker.scala:113) [play_2.9.1.jar:2.0.2]
        at akka.actor.ActorCell.invoke(ActorCell.scala:626) [akka-actor.jar:2.0.2]
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [akka-actor.jar:2.0.2]
Caused by: java.lang.NoClassDefFoundError: sun/security/pkcs11/P11Key
        at sun.security.pkcs11.P11ECKeyFactory.generatePublic(P11ECKeyFactory.java:234) ~[sunpkcs11.jar:na]
        at sun.security.pkcs11.P11ECKeyFactory.implTranslatePublicKey(P11ECKeyFactory.java:103) ~[sunpkcs11.jar:na]
        at sun.security.pkcs11.P11ECKeyFactory.engineGeneratePublic(P11ECKeyFactory.java:152) ~[sunpkcs11.jar:na]
        at java.security.KeyFactory.generatePublic(KeyFactory.java:334) ~[na:1.7.0_03]
        at sun.security.x509.X509Key.buildX509Key(X509Key.java:223) ~[na:1.7.0_03]
        at sun.security.x509.X509Key.parse(X509Key.java:170) ~[na:1.7.0_03]
答案

经过另一次更新&&升级后,jdk从2.1.1pre升级到2.3.2并解决了问题。发生了什么事情,甲骨文浪费了我2个小时,很糟糕。 :(

以上是关于升级Java后无法找到Sun.security的主要内容,如果未能解决你的问题,请参考以下文章

无法找到请求的目标 PKIX 路径构建的有效证书路径失败:sun.security.provider.certpath.SunCertPathBuilderException

GCP-PUBSUB:-sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

未找到sun.security.ssl.SSLSessionImpl

获取 PKIX 路径构建失败:jdk 更新后 sun.security.provider.certpath.SunCertPathBuilderException

线程“主”javax.net.ssl.SSLHandshakeException 中的异常:sun.security.validator.ValidatorException:未找到受信任的证书

反应本土:错误:无法找到升级后的符号