0

私は開発中の Java アプリケーションの展開に JWrapper を使用しようと試みてきましたが、アプリケーションの「オンライン」Windows インストールを Google ドライブのウェブホスティング機能 (私の最初のファイル サーバーの選択肢) または DropBox (ファイル サーバーの 2 番目の選択肢)。[myApp]-windows64-online.exe を実行したときに生成されたログを熟読すると、jWrapper インストール メカニズムがリモート インストール ファイルへのアクセスに失敗していることがわかります (Google ドライブの実装と DropBox の実装の両方の場合)。

(ところで、私のアプリケーションの「オフライン」Windows インストールは完全に機能します。)

JWrapper のサポート担当者 (およびこのスレッドで返信する可能性のある他のユーザー) と一緒にこの問題に簡単に対処するために、JWrapper サンプル アプリケーションで問題をうまくエミュレートしました。

サンプル アプリケーションでオンライン インストールを有効にするために、jWrapper サンプル アプリケーションのビルド パラメータに 1 つの要素を追加しました。

<UpdateURL>https://googledrive.com/host/0B0skoeyva4KiU01RbmYxS3JLYmc/</UpdateURL>

これは、JWrapper がサンプル アプリケーション用に生成する「ビルド」フォルダーの内容を保持するために Google ドライブに作成したフォルダーの公開 URL です。次に、最新バージョンの JWrapper (jwrapper-00033253833.jar) を使用してサンプル アプリケーションの JWrapper ビルド プロセスを実行し、結果の "build" フォルダーの内容を上記の Google ドライブ フォルダーにコピーしました。

次に、サンプル アプリケーション インストールの「オンライン」バージョンをダウンロードするために、提供されたサンプル HTML を開きました。

https://googledrive.com/host/0B0skoeyva4KiU01RbmYxS3JLYmc/SampleAppEmbedExample.html

上記の Web ページで [SampleApp のダウンロード] ボタンをクリックすると、SampleApp-windows64-online.exe がダウンロードされ、実行しました。次に、表示されたセキュリティ警告 (サンプル アプリケーションに証明書がない) で [実行] をクリックすると、JWrapper スプラッシュ ウィンドウが数秒間表示され、消えました。Windows タスク マネージャーは、すべての JWrapper プロセスが終了したことを示しました。

生成された結果のインストール ログ ファイルは次のとおりです

ログの内容を要約すると、多くのリモート ダウンロード試行がすべて失敗し、インストール プロセス全体が次のメッセージで終了したようです。

[JREDownload] Failed to download JRE version file

DropBox をファイル サーバーとして使用して、ビルドとインストールの手順全体を繰り返しましたが、同様の結果が得られました。そのためのインストール ログ ファイルは次のとおりです

これらの結果は、JWrapper で生成されたコンポーネントを使用して同様の「オンライン」インストールを試みたときに、はるかに大規模な Java アプリケーションで経験したことを完全にエミュレートしています。

誰でもこの問題について提供できる支援に感謝します。

ところで、ウェブ ホスティングに Google ドライブを使用するための手順は次のとおりです。

  http://googleappsdeveloper.blogspot.com/2012/11/announcing-google-drive-site-publishing.html

編集 2015-01-15

JWrapper オンライン インストール プロセスによって生成された出力ログには、 JRE のダウンロードに失敗しましたバージョンファイル」と終了します。さらにテストを行った結果、ファイルの長さを確認するために getContentLength メソッドが呼び出されると、Google ドライブの HTTP 接続が常に 0 を返すことが確認されました。ただし、私のテストでは問題なくファイルをダウンロードできます。

JWrapper ソース コードにアクセスできませんが、JWrapper インストーラーがファイル長 0 を「ファイルにアクセスできない」と同義であると誤解している可能性がありますか?

4

1 に答える 1

0

Google ドライブは、アクセス時にファイルに対して 302 リダイレクトを使用しているようです。HTML ファイルの URL からの応答の例を次に示します。

HTTP/1.1 302 Moved Temporarily
Location: /start
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Date: Sat, 17 Jan 2015 11:14:13 GMT
Expires: Sat, 17 Jan 2015 11:14:13 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Alternate-Protocol: 443:quic,p=0.02
Transfer-Encoding: chunked

リダイレクト URL を考えると、Google はこのクエリを使用して転送を準備し、同じ HTTP/1.1 セッションで /start を要求してファイルが配信されることを期待しているように見えます。

JWrapper は現在、この問題の原因と思われるファイル ダウンロードのリダイレクトをサポートしていないと思いますが、今後調査するためにメモしておきます。当面は、リダイレクトなしでファイルを配信するサービスを使用する必要があります。

于 2015-01-17T11:20:48.213 に答える