我有一个小程序,它不会加载在Vista上运行IE7的一个客户端。
错误是:
java.lang.SecurityException: class "com.arup.web.printing.WebPrintApplet"'s signer information does not match signer information of other classes in the same package.applet代码位于名为:WebPrintApplet.jar的jar文件中,它依赖于Sun的PdfRenderer.jar.我已经用相同的证书签署了这两个jar文件,并且我们在我们的web服务器上的同一个文件夹中托管jar文件。
在我们的情况下,我对造成这一问题的原因感到困惑。我的applet的代码都在com.arup.web.printing.WebPrintApplet包中,整个jar文件都被签名了。
对这个问题有什么线索吗?如何解决?
发布于 2012-05-11 20:44:43
我已经用相同的证书对两个jar文件进行了签名,并且我们在我们的web服务器上的同一个文件夹中托管jar文件。
如果其中一个罐子已经签署,它现在将有多个数字签名。这可能会导致所看到的错误。
另外,Java7JRE应该支持使用JWS部署嵌入式小程序,这反过来又允许对打印机进行沙箱访问。这是一个demo. or the JNLP PrintService。
发布于 2012-05-12 09:48:50
由于您似乎有很长的测试周期,所以您可能希望研究另一个失败的来源。如果在相同的包中有两个不同的jar文件中的类,例如,如果jar文件中的pdf呈现器有扩展/更改,则通常会出现此错误。我认为您应该通过设计来避免这样的结构,并且在不可能的情况下,您必须对这两个jars拥有相同的签名者信息。
当前的插件在不同的jars上支持不同的签名者,但我不知道在不同的jars上使用“共享”包的许多签名者是如何实现的。
发布于 2014-09-01 22:13:13
我知道这是两年前的事了,但这可能对我这种情况下的人有帮助:
将违规类的jar放在$JDK/jre/lib/ext/中,然后使用一个新的JVM进程重试。
https://stackoverflow.com/questions/10558326
复制相似问题