以下答案: 出现(通过我们的测试),Java 7 Web Start要求您使用SSL证书在服务器上托管资源。您的证书不必签名,但未签名的证书将提示客户端他们可以忽略的信任消息。 有关详细信息,请参阅以下答案
我们有一个内部应用程序,我们已经使用多年了。为了使这个应用程序的维护更容易,我们没有向员工提供可安装的应用程序版本,我们只是给他们一个.jnlp的链接,并使用JWS在他们的盒子上启动它。到目前为止,这种方法效果很好,但只要我们的任何员工更新到Java 7,JWS系统就会停止在他们的计算机上运行。我们检查,重新检查,甚至验证了我们的JNLP模式,这很好,这使我们认为Web Start本身存在问题。
当用户单击jnlp文件时,它会启动Java 7启动屏幕,然后开始下载我们需要的资源。从那里它只是挂起,JWS启动应用程序的进度条保持在零百分比。
有什么想法吗?这很大程度上是因为他们升级到了Java 7.同时我们建议所有员工继续使用Java 6,直到另行通知为止。我们所有的代码都已正确签名。
以下是我们JNLP的副本:
<?xml version="1.0" encoding="utf-8"?>
<jnlp
spec="1.5+"
codebase="http://peiportal/updater">
<information>
<title>PEI Portal Application</title>
<vendor>Petz Enterprises, Inc.</vendor>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<jar href="PEIPortalLauncher.jar"/>
</resources>
<application-desc/>
</jnlp>
答案 0 :(得分:12)
当人们开始在他们的Windows机器上安装Java 7时,我们最近遇到了这个问题。我们在三个不同的Linux服务器上有jar文件的实例,发现我们可以从其中两个下载应用程序,一个是远程的,一个是本地的,但不是第三个,也是本地的服务器。
密钥位于jnlp文件的codebase规范中。为了将jar文件成功下载到运行Java 7的Windows框中,代码库必须指定“https:...”而不是“http:...”。
上面引用的远程服务器设置为安全服务器,因此专门设置了https。这两个本地服务器都没有安全地设置,但是那个工作的服务器碰巧在代码库规范中使用了“https:”。更改另一台服务器上的jnlp也可以正常工作。 (我们的jnlp是模板化的,并且针对源代码控制之外的每次安装进行了修改,因此存在差异的可能性。)
您可能需要删除Java控制面板中列出的任何非工作应用程序以与服务器上的新jnlp同步:进入Java控制面板的常规选项卡(可从Windows控制面板获得),按“Temporary Internet Files”下的“View ...”按钮,并删除任何不工作的应用程序。
答案 1 :(得分:4)
对于无法访问deepc提供的kenai.com链接的任何人: 提到的错误是
我在Java bug DB中发现的另一个可能与描述匹配的错误可能是
希望Java Web Start能够通过u10 ...
再次使用HTTP更新:在我们的案例中,结果是 AVG防病毒是原因。在AVG设置中,禁用“Online Shield”和“Surf Shield”,Java 7,Windows 7和普通HTTP的组合确实有效。或者升级到最新的AVG 2012版本。参看http://forums.avg.com/in-en/avg-forums?sec=thread&act=show&id=216448
答案 2 :(得分:2)
虽然grw的答案肯定是正确的,但我通过在JNLP文件中强制1.6解决了这个问题:
<resources>
- <j2se version="1.6+" java-vm-args="-Xmx256M"/>
+ <j2se version="1.6" java-vm-args="-Xmx256M"/>
使用上面补丁中的第二行,没有加号。这应该强制Java 7使用Java 6 JRE下载文件,然后这将工作。
答案 3 :(得分:2)
我们也遇到了这个问题,但修复了我们的Apache配置文件中的ServerName和AliasName包含端口号。即 domain.com:443 。当Java 7比较ServerName时,它不匹配并且出现问题。通过从名称中删除:443一切都很好。
答案 4 :(得分:1)
当用户单击jnlp文件时,它会启动Java 7启动屏幕,然后开始下载我们需要的资源。从那里它只是挂起,JWS启动应用程序的进度条保持在零百分比。
FWIW,这也可能是由于Webstart中的死锁引起的,该死锁仅在7u10中解决(截至目前尚处于测试阶段)。见http://javafx-jira.kenai.com/browse/RT-25023。死锁似乎介于GUI线程(例如Java控制台)和jar下载线程之间。
答案 5 :(得分:0)
我们在1.7更新后遇到了类似的问题,但是能够通过转义.ref文件中的字符来解决href问题,即通过用&amp;#63和&amp;#更改href值中的问号和&符号来解决问题。分别为38。
href =“appname.jnlp?protocol = http&amp; host = xx.xx.xx.xx&amp; port = xx”
如果在1.7更新后删除1.6并将规格值保持为“1.6 +”,这种方法会更安全一些。