Ошибка онлайн установки JWrapper по согласованию с Google Drive или DropBox

Я пытался использовать JWrapper для развертывания разрабатываемого Java-приложения, но мне не удалось заставить "онлайн" -установку Windows моего приложения работать в координации с любым из сервисов хостинга Google Drive (мой первый выбор для файлового сервера) или DropBox (мой второй выбор для файлового сервера). Просмотр журнала, сгенерированного при выполнении [myApp]-windows64-online.exe, показывает, что механизмам установки jWrapper не удается получить доступ к файлам удаленной установки (как в случае моей реализации на Google Диске, так и моей реализации DropBox).

(Кстати, "автономная" установка Windows для моего приложения работает отлично.)

В целях более простого решения этой проблемы с людьми из службы поддержки JWrapper (и с кем бы то ни было, кто мог бы ответить в этой теме) я успешно эмулировал проблему с примером приложения JWrapper.

Чтобы включить онлайн-установку с примером приложения, я добавил один дополнительный элемент в параметры сборки примера приложения jWrapper:

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

Это общедоступный URL-адрес папки, которую я создал в Google Диске для хранения содержимого папки "build", которую JWrapper создает для примера приложения. Затем я запустил процесс сборки JWrapper для примера приложения с использованием последней версии JWrapper (jwrapper-00033253833.jar) и скопировал содержимое полученной папки "build" в указанную выше папку Google Drive.

Затем я открыл предоставленный образец HTML-кода для загрузки "онлайн" версии примера установки приложения:

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

На указанной выше веб-странице я нажал кнопку "Загрузить SampleApp", что привело к загрузке SampleApp-windows64-online.exe, которую я выполнил. Затем я щелкнул "Выполнить" в появившемся предупреждении безопасности (нет сертификата с примером приложения), и всплывающее окно JWrapper появилось на пару секунд и исчезло. Диспетчер задач Windows показал, что все процессы JWrapper завершены.

Полученный файл журнала установки был создан здесь: https://googledrive.com/host/0B0skoeyva4KiU01RbmYxS3JLYmc/Wrapper-2015-01-13-14-49-33-805.log

Чтобы суммировать содержимое журнала, кажется, что все попытки удаленной загрузки не удаются, и весь процесс установки завершается следующим сообщением:

[JREDownload] Failed to download JRE version file

Я повторил всю последовательность сборки и установки, используя DropBox в качестве файлового сервера, с похожими результатами. Файл журнала установки для этого находится здесь: https://dl.dropboxusercontent.com/u/2023253/jwSample/Wrapper-2015-01-13-15-24-13-778.log

Эти результаты прекрасно имитируют то, что я испытываю с моим гораздо большим Java-приложением, когда пытаюсь выполнить аналогичную "онлайн" установку с компонентами, сгенерированными JWrapper.

Спасибо за любую помощь, которую любой может оказать в этом вопросе.

Кстати, инструкции по использованию Google Диска для веб-хостинга приведены здесь:

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

РЕДАКТИРОВАТЬ 2015-01-15

Я заметил, что выходной журнал, сгенерированный процессом онлайн-установки JWrapper, по-видимому, показывает ряд сбоев при получении длины файла с удаленного сервера ("Требуемый размер файла неизвестен!") До вывода его окончательного сообщения "Не удалось загрузить JRE". версия файла "и завершается. Мои дальнейшие испытания подтверждают, что HTTP-соединение Google Диска всегда возвращает 0, когда метод getContentLength вызывается для определения длины файла. Тем не менее, файл все еще может быть загружен без каких-либо проблем в моем тестировании.

У меня нет доступа к исходному коду JWrapper, но может ли быть так, что установщик JWrapper неверно интерпретирует длину файла 0 как синоним слова "файл недоступен"?

1 ответ

Google Диск, по-видимому, использует 302 перенаправления файлов при доступе к ним. Вот пример ответа от URL для вашего HTML-файла:

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.

Я полагаю, что JWrapper в настоящее время не поддерживает перенаправления для загрузки файлов, что является вероятной причиной этой проблемы, но я сделаю заметку, чтобы мы рассмотрели это в будущем. Однако в настоящее время вам нужно будет использовать сервис, который доставлял файлы без перенаправлений.

Другие вопросы по тегам