0

我该如何解决这个错误?我的部署 dist 包含我的网络服务器中包含的所有 jar 文件。但是一旦我按下 icon.jnlp 它就会说那个错误。

图标.jnlp:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://localhost:007/dist" href="icon.jnlp" spec="1.0+">
  <information>
    <title>Sample</title>
    <vendor>Sample</vendor>
    <homepage href=""/>
    <description>Sample</description>
    <description kind="short">Sample</description>

    <icon href="load.png" kind="splash"/>
    <icon href="logo.png" kind="default"/>

    <shortcut online="false">
      <desktop/>
        <menu submenu="Sample">
          <menu submenu="Sample Managing System"/>
        </menu>
    </shortcut>
    <offline-allowed/>
  </information>

  <security>
    <all-permissions/>
  </security>

  <resources>
    <j2se version="1.5+"/>
    <jar eager="true" href="http://localhost:007/dist/a.jar" main="true"/>
  </resources>

  <application-desc main-class="main.main">
  </application-desc>

</jnlp>

在此处输入图像描述

跟进:

1) 下载 JAR Maker(适用于 Linux、Windows)

在此处输入图像描述

  • 所有第三方罐子
  • 你的部署罐子

  • 输出目录:/var/tmp/project/dist

  • 转到 JAR 签名者选项卡

    • 输入jar文件:a.jar
      • jarsigner 位置:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/jarsigner
      • 密钥库文件
      • 如果没有创建密钥 > 单击生成密钥库 - 密钥工具位置:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/keytool - 输出密钥库文件:/var/tmp/keystore - 密钥库别名: rememberthisname - 公钥:123456 - 私钥:123456 - 有效期:0 表示 6 个月 - 密钥库身份 - 有效信息... - 按生成密钥库 - 它将创建 /var/tmp/keystore 和 java.key.public 和 java 。钥匙
    • 密钥库身份验证

      • 密钥库别名:rememberthisname
      • 公钥:123456
      • 私钥:123456
    • 点击签名 JAR!> 会告诉你是失败还是成功

对所有其他 JAR 文件重复此过程以进行签名!

2)部署到着陆空间

3) 确保您引用了所有第三方

前:

  <resources>
    <j2se version="1.5+"/>
    <jar eager="true" href="http://localhost:007/dist/a.jar" main="true"/>
  </resources>

后:

  <resources>
    <j2se version="1.5+"/>
    <jar eager="true" href="a.jar" main="true"/>
    <jar eager="true" href="lib/b.jar" main="flas"/>
    <jar eager="true" href="lib/c.jar" main="flas"/>
    <jar eager="true" href="lib/d.jar" main="flas"/>
    <jar eager="true" href="lib/e.jar" main="flas"/>
    <jar eager="true" href="lib/f.jar" main="flas"/>
    <jar eager="true" href="lib/g.jar" main="flas"/>
    <jar eager="true" href="lib/h.jar" main="flas"/>
    <jar eager="true" href="lib/i.jar" main="flas"/>
  </resources>
4

1 回答 1

1

请务必使用JaNeLA检查 JNLP 。

我现在还必须签署所有其他第三方罐子吗?

这取决于它们的部署方式。如果它们在扩展中,则扩展可以具有不同的安全级别。如果安全级别是沙盒,则不需要对 Jars 进行签名。

但随后您可能会面临“混合签名和未签名资源”的警告。我不确定它是否适用于扩展之间。有一些方法可以绕过这些警告,但我认为部署所有已签名的 Jars 更简单,无论它们使用的扩展的安全级别如何。

于 2012-03-02T12:00:02.030 回答