Search code examples
google-app-enginegrailsgroovygrails3

grails app deploy on google-app-engine flexible causes ClassNotFoundException in in grails.init.RunCommand


Following the guide here :

http://guides.grails.org/grails-google-cloud/guide/index.html

and using the completed project from the github link at

https://github.com/grails-guides/grails-google-cloud.git

Ran

==> gcloud init

Then

==> gcloud app create

Then

==> gcloud app deploy

The last step errors out with the following error :

    Updating service [default]...failed.                                                                                         
ERROR: (gcloud.app.deploy) Error Response: [9] 
Application startup error:
-XX:InitialHeapSize=514850816 -XX:MaxHeapSize=514850816 -XX:+ParallelRefProcEnabled -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC 
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-1~bpo8+1-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

Could not determine grails wrapper version due to missing gradle.properties file. Using existing jar
java.lang.ClassNotFoundException: grails.init.RunCommand
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at grails.init.Start.main(Start.java:125)

Please help with the reason for this.

I can confirm that there is a gradle.properties there with the following contents

https://github.com/grails-guides/grails-google-cloud/blob/master/gradle.properties

My local grails version is

==> grails --version
| Grails Version: 3.2.9
| Groovy Version: 2.4.10
| JVM Version: 1.8.0_77

Solution

  • to deploy the app you need to use:

    $ ./gradlew appengineDeploy
    

    see chapter 7 at http://guides.grails.org/grails-google-cloud/guide/index.html#deployingTheApp