1

我有一个不会为在 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.

小程序代码位于名为WebPrintApplet.jar的 jar 文件中,它依赖于 Sun 的PdfRenderer.jar。我已经使用相同的证书对这两个 jar 文件进行了签名,并且我们正在从我们的 Web 服务器上的同一文件夹中托管这些 jar 文件。

我对在我们的案例中可能导致此问题的原因感到茫然。我的小程序的代码都在com.arup.web.printing.WebPrintApplet包中,并且整个 jar 文件都已签名。

关于这个问题的任何线索以及如何解决它?

4

3 回答 3

0

我已经使用相同的证书对这两个 jar 文件进行了签名,并且我们正在从我们的 Web 服务器上的同一文件夹中托管这些 jar 文件。

如果其中一个罐子已经被签名,它现在将有多个数字签名。这可能会导致看到的错误。

顺便说一句,Java 7 JRE 应该支持使用JWS部署嵌入式小程序,这反过来又允许对打印机进行沙盒访问。这是一个演示。或 JNLPPrintService

于 2012-05-11T20:44:43.683 回答
0

由于您似乎有很长的测试周期,您可能想要调查另一个失败的来源。如果您在两个不同的 jar 文件中有同一个包中的类,则通常会出现此错误,例如,如果您对 jar 文件中的 pdf 渲染器进行了扩展/更改。我认为您应该通过设计避免此类构造,并且在不可能的情况下,您必须对两个 jar 具有相同的签名者信息。

当前的插件支持不同 jar 上的不同签名者,但我不知道在不同 jar 上使用“共享”包的许多签名者的实现如何。

于 2012-05-12T09:48:50.940 回答
0

我知道这已经两年了,但它可能对我的情况有所帮助:

将违规类的 jar 放入 $JDK/jre/lib/ext/ 并使用新的 JVM 进程重试。

于 2014-09-01T22:13:13.213 回答