FileNotFoundException通过HTTPS使用java webstart 1.6启动1.4.2 webstart应用程序
感谢所有愿意花时间阅读的人 我正在努力使webstart Swing 1.4.2_12应用程序与JavaWebStart 1.6.0_29一起启动 以下是场景:FileNotFoundException通过HTTPS使用java webstart 1.6启动1.4.2 webstart应用程序,java,https,jnlp,java-web-start,Java,Https,Jnlp,Java Web Start,感谢所有愿意花时间阅读的人 我正在努力使webstart Swing 1.4.2_12应用程序与JavaWebStart 1.6.0_29一起启动 以下是场景: 所有通信都通过HTTPS完成 用户在网页上点击一个链接来启动应用程序:servlet 生成的jnlp文件 Java webstart客户端(1.6.029)在中启动并加载应用程序 一口气 因为j2se版本在jnlp描述符java中设置为1.4.2_12 webstart 1.4.2_12用于启动应用程序(由 1.6.0(29) Java
CouldNotLoadArgumentException[ Could not load specified file/URL : C:\DOCUME~1\BENOIT~1.VAT\LOCALS~1\Temp\javaws2]
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)
完整堆栈跟踪是:
java.io.FileNotFoundException: C:\DOCUME~1\BENOIT~1.VAT\LOCALS~1\Temp\javaws2 (File not found)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(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)
java.io.FileNotFoundException:C:\DOCUME~1\BENOIT~1.VAT\LOCALS~1\Temp\javaws2(找不到文件)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(未知源)
位于java.io.FileInputStream。(未知源)
位于com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(未知源)
位于com.sun.javaws.Main.launchApp(未知源)
位于com.sun.javaws.Main.continueInSecureThread(未知源)
位于com.sun.javaws.Main$1.run(未知源)
位于java.lang.Thread.run(未知源)
- 禁用HTTPS时也会发生相同的错误
缓存控制:空
杂注:空
这些头是防止IE在HTTPS模式下禁用缓存所必需的,因为HTTPS模式会阻止java webstart查找加载的jnlp文件(因为它未被缓存)
- Mime类型设置为:application/x-java-jnlp-file
- 我不明白的是,为什么Java1.4.2_12找不到JWS1.6.0_29加载的jnlp文件
谢谢你的阅读。@安德鲁:谢谢你的关注 下面是我对这个问题的结论 简而言之:始终在jnlp标记中设置href属性强>
<jnlp spec="1.0+" codebase="htt://myhost/codebase" href="mustSetThisAbsolutelyForJWS-1.4.2_12.jnlp">
...
</jnlp>
...
多个HTTP调试会话显示:
场景1:href属性保留为空,JNLP文件与客户端上的JWS 1.6相关联
这对我来说是一件非常痛苦的事,我花了好几天才弄明白。希望有一天这会对某人有所帮助。为什么应用程序会这样做。是否使用过时JRE的过时版本?JNLP中如何指定JRE?您是否收到关于在旧JRE中运行代码的警告?不支持该应用程序。在较新的JRE中工作(达到测试极限)?3分之2还不错,但4分之0非常糟糕:(AndrewThompson感谢你的回复。应用程序使用过时的JRE,因为它是一个10年的遗留应用程序。它与1.5/1.6 JRE不兼容,有些功能被破坏了。更重要的是,不可能重新测试整个应用程序。所以我们不能考虑移动到1.5/1.6。因此,我们在JNLP描述符中声明***指令JWS切换到1.4。2_1 2.我目前正在对该问题进行深入分析,并最终将结果发布在此处。到目前为止,我怀疑根标记的空href属性是该问题的原因。