重启 JBoss / Wildfly 导致 webstart 再次加载所有 jar 文件

Rebooting JBoss / Wildfly causes webstart to load all jar files again

我们正在开发一个软件ware,它在客户端 pc 上运行并通过 webstart (JNLP) 从应用服务器加载。作为应用程序服务器,我们的客户可以在 weblogic 和 jboss (wildfly) 之间进行选择。 webstart 客户端通过 webstart 加载的所有 jar 都打包在应用服务器中部署的 WAR 文件中。 war 文件不包含除 jars 之外的任何其他内容。 我们目前遇到以下问题: 每次我们重新启动 jboss 时,webstart 客户端都会在 wards 之后再次加载所有 jar 文件,尽管它们没有改变。 使用 weblogic 我们没有这个问题。 知道是什么原因导致的以及如何阻止这种行为吗?

我不确定为什么 Weblogic 和 JBoss 之间会有所不同,但您应该在 JNLP 文件中执行以下操作:

  • 为每个 jar 指定一个版本,例如:

<jar href="my.jar" main="true" version="1.0"/>

  • 指定启用的 JNLP 版本

<property name="jnlp.versionEnabled" value="true"/>

这应该确保检查版本并只在需要时下载。您可以在 Oracle docs here.

中查看更多信息

检查您的服务器 return 的 HTTP 代码是否正确。 Webstart(和浏览器)发送 HTTP 请求以查看资源是否被修改。如果未修改,服务器应 return 代码“304 未修改”。

您可以使用这个 chrome 插件来监控 HTTP 请求和响应:

https://chrome.google.com/webstore/detail/live-http-headers/iaiioopjkcekapmldfgbebdclcnpgnlo?utm_source=chrome-app-launcher-info-dialog