我在尝试部署我的项目时遇到了一个问题:“发现一个jar文件太大,无法上传”。当脚本尝试上传appengine-api-1.0-sdk-1.5.3.jar (15.8MB,但只允许10MB文件)时出现问题。这个问题自2009年以来就广为人知。在google issue tracker和这里也有很多罚单。在网络上有很多这样的信息。但它们都指的是两种解决方案:
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_ script选项。
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。它是有效的,但只有在你有简单项目的情况下才有效。但在使用google appengine的所有功能的项目中,它并不起作用。我需要使用数据存储和其他一些函数。如果没有appengine-api-1.0-sdk-1.5.3.jar,项目可以部署,但它无法工作,并在google error console中产生错误(缺少类)。
我已经向谷歌发送了一条消息。不幸的是,他们一直保持沉默。
请帮帮我,你们这些聪明的家伙。我会非常感激的。希望,有一个小窍门可以让它工作。
发布于 2011-09-08 09:32:08
您不需要上传API jar -它是App Engine平台的一部分。无论您更改了什么配置,都会导致SDK尝试上载它,您应该将其更改回来。
发布于 2011-09-07 21:49:40
您可以尝试手动拆分appengine-api-1.0-sdk-1.5.3.jar。
https://stackoverflow.com/questions/7334746
复制相似问题