在资源中找到未签名的条目
我有以下JNLP文件:
TCM 2012 Drift og Performance, *** Servicecenter
现在,当我尝试从网上运行时,我收到以下错误:
Found unsigned entry in resource
随着以下的曝光
com.sun.deploy.net.JARSigningException: Found unsigned entry in resource: http://*****:****/tcm2012.jar at com.sun.javaws.security.SigningInfo.getCommonCodeSignersForJar(Unknown Source) at com.sun.javaws.security.SigningInfo.check(Unknown Source) at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source) at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source) at com.sun.javaws.Launcher.prepareResources(Unknown Source) at com.sun.javaws.Launcher.prepareAllResources(Unknown Source) at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) at com.sun.javaws.Launcher.launch(Unknown Source) at com.sun.javaws.Main.launchApp(Unknown Source) at com.sun.javaws.Main.continueInSecureThread(Unknown Source) at com.sun.javaws.Main.access$000(Unknown Source) at com.sun.javaws.Main$1.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
有谁知道如何解决这个问题?
这对我有用:
去控制面板/ Java。
然后单击“设置”按钮并激活“在我的计算机上保留临时文件”选项。
这很奇怪,但它奏效了!
我的应用程序遇到了类似的问题。
我用javaws部署了一个java swing应用程序:
- 当我使用JRE 1.6运行应用程序时,我得到了exception
- 当我使用JRE 1.7和JRE 1.8运行应用程序时,它可以工作
我检查了所有jar子,MANIFEST.MF等,一切都很好。 最后我发现我使用了一个新的TSA端点来签署我的jar子。
- 当我使用这个TSA http://tsa.starfieldtech.com时,该应用程序可以正常使用JRE6,8
- 当我使用此TSA http://services.globaltrustfinder.com/adss/tsa时 ,应用程序仅与JRE8一起运行
从这个资源http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html我读到要生成时间戳,jarsigner与TSA通过时间戳协议(TSP)进行通信RFC 3161中定义。成功时,TSA返回的时间戳令牌与签名一起存储在签名块文件中。
有人可以提供更多关于这个问题的见解吗? 特别是我不想被迫使用特定的TSA。 为什么TSA之间存在这种差异? 谢谢
如果使用较新的Java版本进行签名,则旧版Java版本也会出现此问题。
- 使用1.8u74和更旧的标志与所有版本一起使用
- 使用1.8u101和更新版本与1.7u80和更新版本一起使用,但不能在客户端上使用旧版本。
符号算法似乎存在不兼容的变化。
我的情况是applet在META-INF文件夹中确实有未签名的条目。 解决这个问题的一种方法是重新签名。 但是在java 8中,自签名小程序被降级到与无符号小程序几乎相同的级别。 并且applet不需要任何额外的权限。 因此只需取消签名并添加到可信站点列表就足够了。
在我的linux机器(使用JDK 6 U45)上编译时遇到了同样的问题。 但是, 只有在我尝试使用Java 6 U45 启动已签名的应用程序时, 才会出现此错误。
当我尝试使用较新的 Java版本(例如Java 8)启动应用程序时,它始终没问题,没有错误消息。
当我使用windows maschine编译项目时(也使用6 Update 45),当我使用Java 6 U45启动时,它也很奇怪。
只是我2美分….干杯!