将项目部署到Google应用引擎时出错

时间:2011-09-07 13:34:19

标签: java google-app-engine gwt

我在尝试部署项目时遇到问题: «发现一个太大而无法上传的jar文件»。脚本尝试上载时会发生此问题 appengine-api-1.0-sdk-1.5.3.jar(15.8 MB虽然只允许10MB文件)。 这个问题自2009年以来就很有名。谷歌问题跟踪器和这里也有很多门票。网上有很多这类消息。但所有这些都指的是两个解决方案:

1)使用--enable_jar_splitting。当然我试过用它。没有成功:

# appengine-java-sdk-1.5.3/bin/appcfg.sh -e some_mail@gmail.com --enable_jar_splitting update    project/war
Reading application configuration data...
......
java.lang.IllegalStateException: Found a jar file too large to upload:     "/tmp/appcfg4869648953084473935.tmp/WEB-INF/classes/war/WEB-INF/lib/appengine-api-1.0-sdk-    1.5.3.jar". Consider using --enable_jar_splitting.
Unable to update app: Found a jar file too large to upload:     "/tmp/appcfg4869648953084473935.tmp/WEB-INF/classes/war/WEB-INF/lib/appengine-api-1.0-sdk- 1.5.3.jar". Consider using --enable_jar_splitting.
Please see the logs [/tmp/appcfg5857347513630341491.log] for further information.

我尝试使用不同版本的SDK(1.4.3,1.5.2和最新的1.5.3)。但是脚本忽略了--enable_jar_splitting选项。

2)将appengine-api-1.0-sdk-1.5.3.jar解压缩到WEB-INF / lib。在这种情况下会出现另一个错误。项目受限于3000个文件。有大约3500个文件。在appengine-api-1.0-sdk-1.5.3.jar存档和我的项目中的100个文件。所以,这个解决方案也不行。

3)我自己找到了3d解决方案。您可以从WEB-INF / lib目录中删除appengine-api-1.0-sdk-1.5.3.jar。它可以工作,但只有在你有简单项目的情况下。但是,如果项目使用谷歌appengine的所有功能,它不起作用。我需要使用数据存储区和其他一些功能。没有appengine-api-1.0-sdk-1.5.3.jar项目可以部署,但它不起作用并在谷歌错误控制台中产生错误(缺少类)。

我已向谷歌发送了一条消息。不幸的是,他们保持沉默。

请帮助我,你聪明的家伙。我将非常感激。希望,有一个小技巧可以让它发挥作用。

2 个答案:

答案 0 :(得分:2)

您无需上传API jar - 它是App Engine平台的一部分。无论你改变了什么配置导致SDK尝试上传它,你都应该改回来。

答案 1 :(得分:1)

您可以尝试手动拆分appengine-api-1.0-sdk-1.5.3.jar。

  1. 解压缩jar文件。
  2. 将一半文件压缩到一个jar文件
  3. 将另一半拉到一个jar文件中。
  4. 更新您的课程路径并构建工具。