Web启动异常JNLP



所以我有点困惑于如何对jar进行签名,以便它作为jnlp运行。

目前我有一个罐子,它运行,开始下载和验证东西,然后它到了最后,弹出一个窗口,说它无法启动,然后它给出了异常:

JNLPException[category: Launch File Error : Exception: null : LaunchDesc: 
 <jnlp codebase="http:/SomeHost:8080/_test/" href="jnlpcomponent1.jnlp" spec="1.0+">
<information>
  <title>jnlpcomponent1</title>
 <vendor>SUN_MICR</vendor>
 </information>
 <security>
 <all-permissions/>
  </security>
<resources>
 <jar href="lib/activation.jar" download="eager"/>
<jar href="lib/mail.jar" download="eager"/>
 </resources>
 <component-desc/>
 </jnlp> 
]
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$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

我很确定这与罐子签名错误/糟糕有关。。。我需要一些帮助来了解这里发生了什么以及如何解决它。

非常感谢。

我很确定这与罐子被签名有关错误/不良

正是发生了这种情况,你的一个罐子没有(正确)签署

对我来说总是有效的:解压缩所有jar,然后用1个进程签名。如果确认它有效,那么我将删除1-2个jar以匹配原始部署设计。你会知道问题出在哪个罐子里,而不是更容易解决。

您可以使用ANT对JAR文件进行签名。通过这种方式,您可以在IDE中对文件进行签名,并在部署应用程序时加快工作流程。每一项更改都要求您重新签署您的申请。

<project name="YourProject" default="dist" basedir="jarsigning">
  <target name="signMainJar">
     <signjar jar="../dist/YourApp.jar" destDir="signed" alias="WhateverYouSetIt2" 
              keystore="fileNameOfCerticate" storepass="passw03d" lazy="true" /> 
     <echo message="The file was signed." /> 
  </target>
  <!-- Use this if you are using any libraries. These also need to be signed. -->
  <target name="signLibs">
    <signjar destDir="signed" alias="WhateverYouSetIt2"
              keystore="fileNameOfCerticate" storepass="passw03d" force="true">
       <path>
          <fileset dir="lib" includes="*.jar" /> 
       </path>
    </signjar>
    <echo message="The library files were signed." /> 
  </target>
 </project>

在运行此脚本之前,您需要首先创建一个jarsigning目录,并放置一个用于签名的证书(密钥)。在该文件夹中,创建一个名为"已签名"的文件夹,脚本将在此处放置已签名的代码。如果您没有从Verisign或GoDaddy等授权机构购买自签名证书,请使用密钥库工具创建自签名证书。

最新更新