google-app-enginegoogle-managed-vm

java.lang.RuntimeException: Failed to generate quickstart-web.xml


Managed VM's require in your appengine-web.xml or it's app.yaml equivalent:

<beta-settings>
  <setting name="java_quickstart" value="true" />
</beta-settings>

And you use try to deploy you get this RuntimeException, what's going on?


Solution

  • As part of the deployment process, both the gcloud preview app deploy and mvn gcloud:deploy commands will launch jetty locally as part of the discovery of your annotations. If there is an error in your code it will crash. For example, in your contextedDestroyed or contextInitialized methods they will crash.

    If you are using Maven, it is possible to debug this issue by:

    For Java SDK 1.9.32:

    java -jar ~/.m2/repository/com/google/appengine/appengine-java-sdk/1.9.32/appengine-java-sdk/appengine-java-sdk-1.9.32/lib/java-managed-vm/appengine-java-vmruntime/quickstartgenerator.jar target/myExplodedWar-1.0-SNAPSHOT

    For Java SDK 1.9.33:

    java -jar ~/.m2/repository/com/google/appengine/appengine-java-sdk/1.9.33/appengine-java-sdk/appengine-java-sdk-1.9.33/lib/java-managed-vm/appengine-java-vmruntime/quickstartgenerator.jar target/myExplodedWar-1.0-SNAPSHOT ~/.m2/repository/com/google/appengine/appengine-java-sdk/1.9.33/appengine-java-sdk/appengine-java-sdk-1.9.33/lib/jetty-base-sdk/etc/webdefault.xml

    We expect this to be fixed in Java SDK 1.9.35