首页 文章

与Google Drive或DropBox协调的JWrapper在线安装失败

提问于
浏览
0

我一直在尝试使用JWrapper来部署我正在开发的Java应用程序,但是我无法成功地将我的应用程序的“在线”Windows安装与Google Drive的虚拟主机设施配合使用(我的第一个)选择文件服务器)或DropBox(我的文件服务器的第二选择) . 仔细阅读执行[myApp] -windows64-online.exe时生成的日志,表明jWrapper安装机制无法访问远程安装文件(在我的Google Drive实现和DropBox实现的情况下) .

(顺便说一下,我的应用程序的“离线”Windows安装非常有效 . )

为了更容易地解决JWrapper支持人员(以及其他任何人可能在此线程上回复)的问题,我已经成功地模拟了JWrapper示例应用程序的问题 .

为了使用示例应用程序启用在线安装,我在jWrapper示例应用程序的构建参数中添加了一个额外的元素:

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

这是我在Google Cloud 端硬盘中创建的文件夹的公共网址,用于保存JWrapper为示例应用程序生成的“build”文件夹的内容 . 然后,我使用最新版本的JWrapper(jwrapper-00033253833.jar)为示例应用程序运行JWrapper构建过程,并将生成的“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

当尝试使用JWrapper生成的组件进行类似的“在线”安装时,这些结果完美地模拟了我在更大的Java应用程序中遇到的问题 .

感谢任何人都可以提供此问题的任何帮助 .

顺便说一句,我在使用Google Cloud 端硬盘进行网络托管时所遵循的说明如下:

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

编辑2015-01-15

我注意到JWrapper在线安装过程生成的输出日志似乎显示了在输出"Failed to download JRE version file"的最终消息并终止之前从远程服务器("Required file size is unknown!")检索文件长度的许多失败 . 我的进一步测试确认,当调用getContentLength方法以确定文件的长度时,Google Drive HTTP连接始终返回0 . 但是,在我的测试中,仍然可以毫无问题地下载该文件 .

我无权访问JWrapper源代码,但可能是JWrapper安装程序错误解释文件长度为0,因为它与“文件不可访问”同义?

1 回答

  • 0

    Google Cloud 端硬盘在访问文件时显然会使用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会话中请求/启动来传递文件 .

    我相信JWrapper目前不支持文件下载的重定向,这可能是导致此问题的原因,但我会在将来对其进行调查 . 目前虽然你需要使用一个服务来提供没有重定向的文件 .

相关问题