Desplegar aplicaciones Grails en Google App Engine (GAE)

Ahora que ya sabemos que es Google App Engine y que características son interesantes para nosotros como desarrolladores de aplicaciones Web para JVM además de que ya logramos desplegar en el nuestra primer aplicación Java, toca el turno a Grails que como algunos de ustedes ya habrán investigado GAE no mencionada nada sobre poder instalar en él nuestras aplicaciones Grails pero si menciona que podemos correr todas aquellas aplicaciones web que utilicen un intérprete o compilador basado en JVM, les recomiendo leer el tutorial anterior (Desplegando una aplicación Java en GAE) donde se explican algunos conceptos básicos sobre GAE que daré por entendidos en el presente tutorial.

Les debo comentar que realmente me costó un poco de trabajo lograr subir la aplicación a GAE pues no hay mucha información al respecto, y la poca que hay no está bien detallada, contiene errores o simplemente son preguntas sin respuesta pues como lo dije en el párrafo anterior GAE no da ningún soporte para el tipo de aplicaciones Grails mas sin embargo se puede realizar el despliegue y el funcionamiento de una aplicación Grails sencilla, el alcance de este tutorial será simplemente el siguiente:

1.- Generar la aplicación Grails y probar que funcione, la cual al correr sin hacer ningún cambio nos muestra una vista muy similar a la siguiente:
2.-Subir esa aplicación sin realizar ningún cambio más que la instalación del plugin necesario para poder trabajar con GAE.
3.- Probar la aplicación desde GAE.

Para generar la aplicación en Grails simplemente debemos ejecutar el comando “grails create-ap nombremiproyecto” donde deberemos sustituir nombremiproyecto por el nombre que le queramos dar a nuestra aplicación en este caso utilizare pruebagrailsengae un dato muy importante a tener en cuenta es que la aplicación que creemos en GAE se debe llamar exactamente igual que nuestro proyecto (y debe ser todo en minúsculas), aunque esto lo podemos configurar, por esta vez nos aseguraremos que tanto nuestro proyecto como la aplicación en GAE se llamen igual.

Ahora lo que tenemos que hacer primero que nada es desinstalar el plugin de tomcat que incorpora Grails por defecto a todas las aplicaciones para ello usamos el comando “unistall-plugin tomcat”

El siguiente paso es instalar el plugin de GAE para Grails para ello ejecutaremos el comando “grails install-plugin app-engine”

Cuando nos pregunte si queremos utilizar JPA/JDO seleccionamos JDO de momento no vamos a trabajar con base de datos pero esta es la opción más recomendada.

Al finalizar la instalación del plugin debemos asegurarnos que realmente se haya instalado bien el plugin pues me ha pasado en varias ocasiones el plugin no se instala correctamente generalmente si cometemos el error de tratar de instalar el plugin sin antes desinstalar el de tomcat como que no se llevan porque GAE trae un servidor jetty bien pus para verificar que el plugin se instalo correctamente podemos ejecutar la aplicación y ahora al levantar en la pagina inicial vemos que se agrego un controlador “org.grails.appengine.AppEngineReloadController” :

Una característica a tomar en cuenta es que GAE solo toma números enteros para la versión por lo cual debemos setear la versión de nuestra aplicación mediante el uso del comando “grails set-version =1”

Ahora simplemente nos resta subir la aplicación a GAE y para esto simplemente ejecutamos el comando “grails app-engine deploy” introducir nuestras credenciales cuando nos las solicite y esperar a que suba y despliegue nuestro proyecto en GAE, al finalizar si todo salió bien veremos algo como esto:

Y ahora para corroborar que todo salió bien podemos ver la aplicación en la siguiente liga:

http://pruebagrailsengae.appspot.com/

Post Original Blog de Roberto León