简体   繁体   中英

Error while deploying a project to google app engine

I have a problem trying to deploy my project: «Found a jar file too large to upload». The problem occurs when the script tries to upload appengine-api-1.0-sdk-1.5.3.jar (15.8 MB although only 10MB files are allowed). The problem is well-known since 2009. There are a lot of tickets in google issue tracker and here as well. There are a lot of messages of this kind all over the web. But all of them are referring to the two solutions:

1) Using the --enable_jar_splitting. Surely I've tried to use it. No success:

# 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.

I tried to use different versions of SDK (1.4.3, 1.5.2 and the latest 1.5.3). But the script ignores the --enable_jar_splitting option.

2) Unpack appengine-api-1.0-sdk-1.5.3.jar to WEB-INF/lib. Another error arises in this case. Projects are limited by 3000 files. There are 3500 files approx. in appengine-api-1.0-sdk-1.5.3.jar archive and 100 files in my project. So, this solution does not work as well.

3) I have found the 3d solution myself. You can delete the appengine-api-1.0-sdk-1.5.3.jar from WEB-INF/lib directory. It works but only in cases you're having simple projects. But it does not work in case of projects using all the power of google appengine. I need to use datastore and some other functions. Without the appengine-api-1.0-sdk-1.5.3.jar the project could be deployed, but it does not work and produces errors in google error console (classes are missing).

I have sent a message to google. They're keeping silence, unfortunately.

Please help me, you clever guys. I will be awfully grateful. Hope, there is a little trick to get it work.

You don't need to upload the API jar - it's part of the App Engine platform. Whatever configuration you've changed that is causing the SDK to try and upload it, you should change back.

You can try to split appengine-api-1.0-sdk-1.5.3.jar manually.

  1. Unzip the jar file.
  2. Zip half the files to one jar file
  3. Zip the other half to one jar file.
  4. Update your class path and build tools.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM