我有一个 Amazon S3 存储桶,用于保存我的 Java 应用程序的 .jar 文件。我有一个 Web 服务器,它动态创建并提供一个 JNLP 文件,该文件指向代码库的这个 Amazon S3 存储桶。
JNLP 似乎能够从我的 Amazon S3 存储桶中正确下载 .jar 文件。但是在尝试启动时,出现以下异常:
ExitException[ 3]java.io.IOException: Cannot find cached resource for URL: http://s3.amazonaws.com/....
at sun.plugin2.applet.JNLP2Manager.prepareLaunchFile(Unknown Source)
at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Java 是否使用 IP 地址缓存 .jar 文件?在 java 日志的前面,打印了以下内容:“cache: CacheEntry IP mismatch: 207.171.189.80 != 207.171.187.117”。两个 IP 都解析为 S3。
我有点惊讶我遇到了这个问题,并认为这是一个常见问题,但找不到好的解决方案。如果我将 IP 地址粘贴在 JNLP 文件中:
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" codebase="http://207.171.189.80/...
代替:
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" codebase="http://s3.amazonaws.com/...
它每次都有效。否则,它通常会因上述异常而中断。
有谁知道一个好的解决方案?谢谢。