4

升级到 Java 7 后,在启动远程 jnlp 时,我在 Java 控制台中看到以下异常:

java.security.KeyStoreException: WIExplorerMy not found
    at java.security.KeyStore.getInstance(Unknown Source)
    at com.sun.deploy.services.WPlatformService$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.deploy.services.WPlatformService.getBrowserClientAuthKeyStore(Unknown Source)
    at sun.plugin2.applet.context.InitialJNLPExecutionContext.getBrowserClientAuthKeyStore(Unknown Source)
    at sun.plugin2.main.client.DisconnectedExecutionContext.getBrowserClientAuthKeyStore(Unknown Source)
    at sun.plugin2.applet.Applet2BrowserService.getBrowserClientAuthKeyStore(Unknown Source)
    at com.sun.deploy.security.X509DeployKeyManager.<init>(Unknown Source)
    at com.sun.deploy.net.protocol.https.Handler$Initializer$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.deploy.net.protocol.https.Handler$Initializer.<clinit>(Unknown Source)
    at com.sun.deploy.net.protocol.https.Handler.openConnection(Unknown Source)
    at java.net.URL.openConnection(Unknown Source)
    at com.sun.deploy.net.BasicHttpRequest.createUrlConnection(Unknown Source)
    at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source)
    at com.sun.deploy.net.BasicHttpRequest.doGetRequestEX(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.security.NoSuchAlgorithmException: WIExplorerMy KeyStore not available
    at sun.security.jca.GetInstance.getInstance(Unknown Source)
    at java.security.Security.getImpl(Unknown Source)
    ... 26 more

此外,显示“错误。单击查看详细信息”的错误屏幕会出现约 2 秒钟,然后消失。

除此之外,一切似乎都正常运行。

使用 Java 6,一切都按预期工作。

想法如何解决它?

4

4 回答 4

1

我认为一些最新的 Java 7 更新已经淘汰了一些加密方案,因此如果您在使用 Java 6 时使用其中一种,这将是一个完全正常的异常。

请参阅Java 7 的增强和更改列表

不推荐使用弱密码套件

根据 RFC 4346、RFC 5246 和 RFC 5469,某些密码套件已过时,不应使用。SunJSSE 默认禁用这些过时的套件。有关详细信息,请参阅有关 SunJSSE 提供程序的文档中的密码套件列表。

话虽如此,这可以解释 NoSuchAlgorithmException,但错误消息似乎提到了有关缺少密钥库的内容,因此这可能无关紧要,我们需要您提供SSCCE或任何足够接近的内容。

于 2013-06-07T00:42:31.133 回答
1

我通过添加解决了这个问题

security.provider.11=com.sun.deploy.security.MSCryptoProvider

C:\Program Files\Java\jre1.8.0_31\lib\security\java.security

尽管该错误对我来说不是致命的,但它只是 javaws 在回退到由控制面板管理的 java 密钥库之前试图读取本地浏览器密钥库。这些文件在C:\Users\USERID\AppData\LocalLow\Sun\Java\Deployment\security

有趣的是,java.security 文件中预装了一个安全提供程序,它是

security.provider.10=sun.security.mscapi.SunMSCAPI

此提供程序也可以读取浏览器密钥库,但存储类型是 windows-my,而不是 WIExplorerMy

于 2015-02-25T21:20:35.970 回答
0

Tarlog,您找到任何解决方案了吗?我有同样的问题,我怀疑 KeyStoreException 异常的第一个问题只有在您尝试安全连接时才会发生。在通过 jnlp 加载的任何 Applet 上都会发生险恶的“错误。单击以获取详细信息”问题。

我还没有找到任何解决方案。

编辑:对于 KeyStoreException,我已经意识到问题是由于 apache 证书文件以某种方式消失了。我已经生成了证书文件并重新启动了 apache。不再发生异常。

错误窗口的另一个问题仍然存在。

于 2013-06-05T08:50:37.600 回答
0

关于Error Click for details issue- 我通过向实现的源添加一个类javax.jnlp.DownloadServiceListener(可以只是一个虚拟类)然后在你的 jnlp 文件中指定该类来解决这个问题(applet-desc/@progress-class="YourClass")

于 2017-01-05T11:35:00.630 回答