5

Java アプリケーション用の .jar ファイルを保持する Amazon S3 バケットがあります。また、コードベースのこの Amazon S3 バケットを指す JNLP ファイルを動的に作成して提供する Web サーバーがあります。

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 は .jar ファイルを IP アドレスとともにキャッシュしますか? Java ログの前半に、「cache: CacheEntry IP mismatch: 207.171.189.80 != 207.171.187.117」が出力されます。どちらの IP も S3 に解決されます。

この問題が発生していることにちょっと驚いています。これはよくある問題だと思いますが、良い解決策が見つかりません。JNLP ファイルに IP アドレスを貼り付けると、次のようになります。

<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/...

それはいつでも機能します。そうしないと、通常、上記の例外で壊れます。

誰かがこれに対する良い解決策を知っていますか? ありがとう。

4

1 に答える 1