我有一个applet,不会为在Vista上运行IE7的1个客户端加载。
错误是:
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文件都已签名。
有关问题以及如何解决问题的任何线索?
答案 0 :(得分:0)
我已经使用相同的证书签署了两个jar文件,我们正在从我们的Web服务器上的同一文件夹中托管jar文件。
如果其中一个Jars已经签名,它现在将有多个数字签名。这可能会导致错误。
另外,Java 7 JRE应该支持使用JWS部署嵌入式applet,这反过来允许对打印机进行沙盒访问。这是demo. or the JNLP PrintService
。
答案 1 :(得分:0)
由于您似乎有很长的测试周期,您可能需要调查另一个失败的来源。如果您在两个不同的jar文件中的相同包中有类,则通常会出现此错误,例如,如果您对jar文件中的pdf渲染器进行了扩展/更改。我认为你应该通过设计避免这种结构,如果不可能,你必须为两个罐子提供相同的签名者信息。
当前的插件在不同的jar上支持不同的签名者,但我不知道具有“共享”包的不同jar上的许多签名者的实现方式。
答案 2 :(得分:0)
我知道这已经有两年了,但在我的情况下它可能有所帮助:
将违规类的jar放在$ JDK / jre / lib / ext /中,然后使用新的JVM进程重试。