jar/jnlp を動的に配布しようとすると、いくつかの問題が発生しました。私のすべてのファイルは、ファイル xxx に対してhttp://www.mywebsite.com/ServeFile?name=xxxを使用して動的に提供されます。ファイルを正しくダウンロードできます。
jnlp へのリンクをブラウザに入れてダウンロードすると、jar ファイルが見つからないことを示す javaws からのエラーが表示されます。GAE ログ ファイルは、javaws がロードを試みた/ServeFile.pack.gz?name=test__V1.0.jar
ため、ServeFile サーブレットによって提供されず、代わりに / (別のサーブレット) によって提供されたことを示しています。
これが私のjnlpファイルの部分的な内容です:
<resources>
<j2se version="1.6+"/>
<jar href="ServeFile?name=test.jar" main="true" version="1.0"/>
<property name="jnlp.packEnabled" value="true"/>
<property name="jnlp.versionEnabled" value="true"/>
</resources>
私の質問は、リクエストに AcceptEncoding を入れるだけでなく、javaws が .pack.gz を URL の真ん中に入れる方法です。jnlpとjarを動的に提供する正しい方法は何ですか?
アップデート
?file=file.jarを使用せずにhttp://website.com/path/file.jarなどの「静的」タイプのリンクを使用すると、問題が解決しました。まだ問題があります:
新しい問題
JavaWS は時々?version-id=1.0を置き、動的 URL も?folder=root&user= guest のような同様のパターンを使用しています。したがって、 version-id は1.0?folder=rootになります。
&folder=root&user=guestを入力すると機能しますが、 javawsがmyjar __ V1.0.jar& folder=rootを要求することがあるため、ファイル名にmyjar _ V1.0& folder=rootが含まれるようになりましたが、これは間違っています。一貫性がありません。
Temporarily, I can just parse this version-id to see whether it contains a question mark. I hope there is a better solution.