自Java 1.7.0u40以来Java WebStart应用程序的启动延迟很长

自从我们安装了Java 1.7.0u45以来,我们的WebStart应用程序在Windows系统上显示了启动时的重大延迟(我们还没有尝试过其他平台)。

症状是双击桌面上的应用程序图标后,启动画面快速显示,停留一段时间(如之前所做)并关闭。 在此之后我们有大约1分钟的延迟。 然后,最后,应用程序窗口打开,一切都像魅力一样。

我们的应用程序在Java 1.7.0u25之前没有遇到任何问题。 Java 1.7.0u40是问题出现的第一个版本。

我们的应用程序由单个(可执行)jar文件构成。 最常见的部分是jar内部的串行端口访问的一些本机类。 我在这篇文章的末尾添加了jnlp文件。

我们试图找出延迟的原因是什么:

查看了我们版本的http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/enhancements-7.html上 的Java WebStart发行说明

我们可以说,没有什么可以导致这种行为。 我们注意到有新的Manifest条目(Permissions,Codebase,Application-Name)。 这些都被添加了。

看着谷歌和stackoverflow。

有些似乎有类似的问题,但我们从未见过解决方案。 在许多情况下,人们在下载jar文件和重复下载时遇到问题。 这似乎不是我们的问题。

使用坚韧的工具

我们想知道应用程序在上述时间内的作用。 所以我们使用了来自sysinternals和wireshark的进程资源管理器和进程监视器。 我们发现在等待时间内,该过程尝试通过IP与’vip1.g-anycast1.cachefly.net’(205.234.175.175)和93.184.220.29进行通信。 后者似乎是一个证书服务器,我真的不明白cachefly是什么东西。 在这两种情况下,我们都会看到TCP syn,但没有答案,没有进一步的沟通。 这两个地址都是可以ping的。

与IP-stuff无关:我们确定,应用程序没有下载,而是从缓存开始,并且我们的主要是延迟之后调用,而不是之前。

这就是我们陷入困境的地方

任何进一步的想法如何解决这个? 我们是唯一经历过这种行为的人吗?

Jnlp(请注意,手动重新设置url):

   TcuTerm Development                     

是的,atulsm的答案给了正确的答案。 但请继续阅读:我试图遵循提示,但它看起来不太好,因为在Java控制面板中,条目已被禁用(未设置勾号)。 设置它会导致tickmark仅暂时显示(一旦WebStart应用程序被执行并再次终止,设置就会返回到未选中状态),因此好像设置没有正确写入Java的配置文件中。

最后:我检查了部署配置文件,并在部署属性中手动设置deployment.security.revocation.check=NO_CHECK 那确实解决了问题!

我遇到过这个问题,这是因为默认情况下强制执行的证书撤销检查。 禁用它(高级选项卡=>执行证书吊销检查“),它应该没问题!