JRE 升级后 Java Applet 无法运行

标签 java security applet classcastexception

我有 JRE 1.6,已更新到 1.8.0_31。在此更新后,我的小程序已停止工作,并且出现以下错误

java.lang.ExceptionInInitializerError
  at com.sun.deploy.net.protocol.https.Handler.openConnection(Unknown Source)
  at java.net.URL.openConnection(Unknown Source)
  at sun.net.www.protocol.jar.JarURLConnection.<init>(Unknown Source)
  at sun.plugin.net.protocol.jar.CachedJarURLConnection.<init>(Unknown Source)
  at sun.plugin.net.protocol.jar.Handler.openConnection(Unknown Source)
  at java.net.URL.openConnection(Unknown Source)
  at sun.misc.URLClassPath$JarLoader.getJarFile(Unknown Source)
  at sun.misc.URLClassPath$JarLoader.access$600(Unknown Source)
  at sun.misc.URLClassPath$JarLoader$1.run(Unknown Source)
  at sun.misc.URLClassPath$JarLoader$1.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.misc.URLClassPath$JarLoader.ensureOpen(Unknown Source)
  at sun.misc.URLClassPath$JarLoader.<init>(Unknown Source)
  at sun.misc.URLClassPath$3.run(Unknown Source)
  at sun.misc.URLClassPath$3.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.misc.URLClassPath.getLoader(Unknown Source)
  at sun.misc.URLClassPath.getLoader(Unknown Source)
  at sun.misc.URLClassPath.getResource(Unknown Source)
  at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
  at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
  at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
  at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
  at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: sun.security.ssl.X509TrustManagerImpl cannot be cast to com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager
  at com.sun.deploy.security.X509ExtendedDeployTrustManager.<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)
  ... 29 more
Exception: java.lang.ExceptionInInitializerError
java.lang.NoClassDefFoundError: Could not initialize class com.sun.deploy.net.protocol.https.Handler$Initializer
  at com.sun.deploy.net.protocol.https.Handler.openConnection(Unknown Source)
  at java.net.URL.openConnection(Unknown Source)
  at sun.net.www.protocol.jar.JarURLConnection.<init>(Unknown Source)
  at sun.plugin.net.protocol.jar.CachedJarURLConnection.<init>(Unknown Source)
  at sun.plugin.net.protocol.jar.Handler.openConnection(Unknown Source)
  at java.net.URL.openConnection(Unknown Source)
  at sun.misc.URLClassPath$JarLoader.getJarFile(Unknown Source)
  at sun.misc.URLClassPath$JarLoader.access$600(Unknown Source)
  at sun.misc.URLClassPath$JarLoader$1.run(Unknown Source)
  at sun.misc.URLClassPath$JarLoader$1.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.misc.URLClassPath$JarLoader.ensureOpen(Unknown Source)
  at sun.misc.URLClassPath$JarLoader.<init>(Unknown Source)
  at sun.misc.URLClassPath$3.run(Unknown Source)
  at sun.misc.URLClassPath$3.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.misc.URLClassPath.getLoader(Unknown Source)
  at sun.misc.URLClassPath.getLoader(Unknown Source)
  at sun.misc.URLClassPath.getResource(Unknown Source)
  at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
  at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
  at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
  at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
  at java.lang.Thread.run(Unknown Source)
Exception: java.lang.NoClassDefFoundError: Could not initialize class com.sun.deploy.net.protocol.https.Handler$Initializer

我正在使用 Jboss 服务器,并且 server.xml 文件已更新为使用正确的 keystore 和使用 SSL 的证书。

我已在浏览器和 JAVA 控制面板的异常(exception)列表中添加了我尝试访问的 https 站点。清除了两者的缓存,并删除了用户证书以确保下载最新的证书。

请帮助了解解决步骤。

通过取消选中并重新选中 java 控制面板中的“在浏览器上启用 java 内容”复选框,我能够消除上述问题。 当外部用户使用该应用程序时,我仍然面临问题。

我观察到有两组异常 1、连接超时 2. 类未加载

所有这些问题仅在下载 JRE 版本 1.8.0_31-b13 后才出现

basic: Added progress listener: sun.plugin.util.ProgressMonitorAdapter@195fb2b
security: Expected Main URL: https://www.VVV/GFH/SecurityApplet.jar
basic: Plugin2ClassLoader.addURL parent called for https://VVV/GFH/SecurityApplet.jar
network: Cache entry found [url: https://VVV/GFH/SecurityApplet.jar, version: null] prevalidated=false/0
cache: Adding MemoryCache entry: https://VVV/GFH/SecurityApplet.jar
cache: Resource https://VVV/GFH/SecurityApplet.jar has expired.
cache: Resource https://VVV/GFH/SecurityApplet.jar has cache control: no-cache.
network: Connecting https://VVV/GFH/SecurityApplet.jar with proxy=DIRECT
network: Cache entry not found [url: file:/D:/Program%20Files/Java/lib/ext/sunec.jar, version: null]
network: Cache entry not found [url: file:/D:/Program%20Files/Java/lib/ext/sunjce_provider.jar, version: null]
network: Connecting http://VVV:443/ with proxy=DIRECT
network: Connecting https://VVV/GFH/SecurityApplet.jar with proxy=DIRECT
network: Connecting http:/VVV:443/ with proxy=DIRECT
java.net.ConnectException: Connection timed out: connect
  at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
  at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
  at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
  at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
  at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
  at java.net.PlainSocketImpl.connect(Unknown Source)
  at java.net.SocksSocketImpl.connect(Unknown Source)
  at java.net.Socket.connect(Unknown Source)
  at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)

Also getting class not found as below

basic: load: class com/cosl/security/GHB/api/MACApplet.class not found.
java.lang.ClassNotFoundException: com.cosl.security.GHB.api.MACApplet.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Ignored exception: java.lang.ClassNotFoundException: com.cosl.security.armor4c.api.MACApplet.class
basic: Dialog type is not candidate for embedding
security: Reset deny session certificate store

任何有关这些的帮助都值得赞赏。我已经被这个问题困扰了 3 -4 周,并且没有任何可用的解决方案

最佳答案

您是否验证过您的证书是否存在垃圾字符?这似乎是一个证书错误。

关于JRE 升级后 Java Applet 无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29091290/

相关文章:

java - JFreeChart:使用 ChartMouseListener 和鼠标移动在 ChartPanel 中动态选择点

java - 从哪里获取 netbeans 项目的 .java 文件?

java - 将长文本分成页面以供 viewpager 使用

java - System.getenv() 仅在调试 IntelliJ 插件时才能正常工作

php - 多次登录失败后启用验证码 - 如何实现?

php - 带有javascript的动态xsrf

javascript - 安全差异 jquery 表单提交与 ajax 发布?

java - 我的小程序需要客户端访问资源的权限的策略文件位置在哪里?

java - 如何加载大的小程序

Java 球对象不会像预期的那样从绘制的矩形反弹。