重启 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 请求和响应:
我们正在开发一个软件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 请求和响应: