【问题标题】:ClassNotFoundException only if JAR is signedClassNotFoundException 仅当 JAR 已签名时
【发布时间】:2012-08-22 22:23:52
【问题描述】:

这是一个难题!

我在 JAR 中有一个小程序。当 JAR 被签名时 - 无论是 自签名 还是使用 DigiCert 证书 - 我在主小程序类上得到一个 ClassNotFoundException。 当我签署小程序时,它加载得很好 - (由于代码未签名,不包括预期的SecurityException)。

但我可以解压已签名的 JAR 并找到所有内容都在它应该在的地方。

最奇怪的是,直到上周,设置都运行良好。 相同的主类、自签名、相同的 JS/HTML 部署组合等。

有什么想法吗?

这是错误信息:

java.lang.ClassNotFoundException: com.spraklab.ilos.applet.Applet
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:195)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:690)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3045)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497)
at java.lang.Thread.run(Thread.java:680)

【问题讨论】:

  • 听起来,出于某种原因,签名检查不正确。你的证书过期了吗?
  • 没有。这是一个新的证书。并且在另一个小程序上使用了相同的签名代码,并且那个工作得很好......
  • 一个工作日后 - 我还没有解决它。但是:我发现完全相同的 URL/HTML/JAR/applet 在 Chrome“隐身窗口”或 Safari 的“私人”模式下加载时工作正常 - 但在常规窗口中失败。有趣!
  • 你的时钟有点奇怪,也许吧?或者(更有可能)您的系统的证书链被搞砸了。

标签: java jar applet signing


【解决方案1】:

在上面的代码中,您尝试切换安全小程序类加载器。从 Java 1.2 开始,这是不允许的。

【讨论】:

  • 可能是什么原因造成的?我不知道我正在做任何特别的事情来实现这一目标......
【解决方案2】:

短版: JAR 名称中没有连字符!

戏剧性的故事: 最后!发现问题后的许多工作日。 未签名时小程序加载正常,签名时出现 ClassNotFoundException。 关于类加载器切换的答案让我相信我的代码中发生了一些变化。所以我把我的代码精简到最低限度。 但是为了避免一直重启我的浏览器并清空缓存等,我只是使用了 Chrome 的隐身模式。我重建了代码。最后一切都很好。不是! 然后,当我在隐身模式之外对其进行测试时,我又遇到了错误。

那么有什么区别呢?对服务器日志的检查表明,在常规模式下根本没有从服务器请求 Jar! 我再次将我的代码与具有类似嵌入代码的不同应用程序进行比较,发现只有一个区别:我在 JAR 名称中使用连字符而不是下划线 - 这应该是允许的,并且一直运行良好,直到大约 2 周前。 但是大约 2 周前不是还有 Java 更新吗...?!?!

【讨论】:

    猜你喜欢
    • 2013-08-30
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多