Google has released its App Engine SDK on Maven central as a zip. But its very large and causes a “Error 503 backend read error“. So, after a lot of head-banging I resolved this by adding SDK zip package (Yes! one from website) and a few jars (optional), to maven. Skip to end for the commands. You may have to modify these for a newer version.
I created a simple maven project for some usual “help a friend” work. It worked well, so I thought “Why not publish sources on GitHub?”. After a few cycles, it looked ok, so I though I will push is to Google App Engine.
And, the nightmare began. I added following plugin and dependency in pom.xml based on official documentation.
App Engie SDK Dependency
App Engine Maven Plugin
Just to be safe, I downloaded latest GAE SDK (1.8.8), Eclipse Plugin, etc. As per documentation, I tried to start dev server with following command:
Fire up local server
After a long list of downloads, build failed. Bang! The trouble started. Got this:
[ERROR] Failed to execute goal com.google.appengine:appengine-maven-plugin:1.8.8:devserver_start (default-cli) on project java-servlet: Could not resolve SDK artifact in Maven. Could not transfer artifact com.google.appengine:appengine-java-sdk:zip:1.8.8 from/to central (http://repo.maven.apache.org/maven2): Failed to transfer file: http://repo.maven.apache.org/maven2/com/google/appengine/appengine-java-sdk/1.8.8/appengine-java-sdk-1.8.8.zip. Return code is: 503 , ReasonPhrase:backend read error. -> [Help 1]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] For more information about the errors and possible solutions, please read the following articles:
This was unusual. So I tried again. Its maven central server not an “under-the-desk-server”. But same no change. I tried to download zip manually, just to be sure that artifact is indeed there. Damn it! I got same error, just a little more fancy looking though!
Google App Engine : Maven SDK Download Error
In directory index (here), I saw that this file was a large (150+MB). So, now what? I did deploy the application after testing on Tomcat 7. I used simple appcfg.sh command.
appcfg.sh update target/java-servlet
But, this was not a “cool” way. Maven is my project management tool, and I should use it as much as possible.
Accident to Revival
After googling, reading, googling, reading and googling, I stumbled upon an old blog that added 1.2 version of SDK to maven using install:install-file goal. Eureka! Why not do this with SDK zip? Thats it. Here are the commands