我有以下JNLP文件:
<jnlp spec="1.0+" codebase="http://****:****" href="tcm2012.jnlp">
<information>
<title>TCM 2012</title>
<vendor>Drift og Performance, *** Servicecenter</vendor>
<homepage href="http://******"/>
<description/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+"/>
<jar href="tcm2012.jar"/>
</resources>
<application-desc main-class="com.****.kundeservice.TCMApplication"/>
</jnlp>
现在,当我尝试从网上运行时,我收到以下错误:
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)
有谁知道如何解决这个问题?
答案 0 :(得分:22)
这对我有用:
转到控制面板/ Java。
然后单击“设置”按钮并激活“在我的计算机上保留临时文件”选项。
这很奇怪,但它确实有效!
答案 1 :(得分:5)
如果使用较新的Java版本进行签名,则旧版Java版本也会出现此问题。
符号算法似乎发生了不兼容的变化。
答案 2 :(得分:2)
我的应用程序遇到了类似的问题。
我使用javaws部署了一个java swing应用程序:
我检查了所有罐子,MANIFEST.MF等,一切都很好。 最后我发现我使用了一个新的TSA端点来签署我的罐子。
我从这个资源http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html读到了 为了生成时间戳,jarsigner使用RFC 3161中定义的时间戳协议(TSP)与TSA进行通信。成功时,TSA返回的时间戳令牌与签名一起存储在签名块文件中。
有人可以就此问题提供更多见解吗?特别是我不想被迫使用特定的TSA。 为什么TSA之间存在这种差异? 感谢
答案 3 :(得分:0)
我的情况是applet在META-INF文件夹中确实有未签名的条目。 ) 解决这个问题的一种方法是重新签名。 但在java 8中,自签名小程序demoted与无符号小程序几乎相同。并且applet不需要任何额外的权限。 因此只需un-sign和add to trusted sites list即可。
答案 4 :(得分:0)
在我的 linux maschine(使用JDK 6 U45)上编译时遇到了同样的问题。 但是当我尝试启动使用Java 6 U45签名的应用程序时,我收到此错误 。
当我尝试使用较新的 Java版本(例如Java 8)启动应用程序时,它始终没问题,没有错误消息。
当我使用 windows maschine编译项目时(也使用6 Update 45),当我使用Java 6 U45启动时,它也很奇怪。
只需2美分...... 干杯!