【问题标题】:Java Web Start "Cannot find cached resource for URL"Java Web Start“找不到 URL 的缓存资源”
【发布时间】:2013-06-11 21:10:41
【问题描述】:

在带有 JRE 7 更新 21(两种情况下均为 32 位)的 Windows 7 和 8 下,对于在更新 21 之前在 JRE 中工作的 JWS 应用程序,我遇到错误 Cannot find cached resource for URL yyyyyyyyyyy.jar。如果我尝试下载 yyyyyyyyyy.jar通过将其放入浏览器中,它可以正常工作。它是我的 JNLP 文件中的“主”jar 文件。

【问题讨论】:

  • 务必使用JaNeLA检查JNLP。
  • @AndrewThompson 这是我做的第一件事,在你的另一条 SO 评论中找到了这个建议:-)

标签: java java-web-start


【解决方案1】:

实际问题可能在于您的 Web 服务器发送 HTTP 标头“Cache-Control”,其值为“no-store”以避免缓存。但是,指定“no-store”意味着 JWS 无法存储您的 JNLP 文件中指定的资源。

为了避免这个问题而不必禁用“在我的计算机上保留临时文件”,因为这允许应用程序在离线模式下工作,我更新了我的 Apache Web 服务器配置以发送以下内容以禁用中间代理缓存内容:

Header set Cache-Control "no-cache, must-revalidate, max-age=0"
Header set Pragma "no-cache"

【讨论】:

    【解决方案2】:

    我的解决方案是在 Java 控制面板 -> 常规 -> 临时文件设置中:

    • 点击“删除文件...”并选择所有选项。
    • 禁用“在我的计算机上保留临时文件”。

    有一个视频显示了这些步骤:https://www.youtube.com/watch?v=uI9RbmT9PKs

    【讨论】:

    • 我相信这将使应用程序无法在离线模式下运行,因为您永远不会缓存它们。
    【解决方案3】:

    “单击“删除文件...”并选择所有选项。”只是,而不是再次调用 Web Start 资源(一个 .jnlp/JNLP 文件),否则您将不得不一次又一次地下载所有文件。

    【讨论】:

    • 当我尝试只使用删除文件时,它并没有解决问题。我不得不在我的计算机上禁用保留临时文件。
    【解决方案4】:

    从 Java 7 升级到 Java 8 以解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 2015-09-26
      • 2016-02-18
      • 2018-01-03
      • 2022-12-29
      • 1970-01-01
      • 2018-05-16
      相关资源
      最近更新 更多