Desplegando en Cloud Foundry desde Spring Roo

El otro día vimos que era Cloud Foundry.

Hoy vamos a desplegar una aplicación Spring Roo en Cloud Foundry para que veáis lo integrado que está y lo sencillo que es 🙂

Para eso:

· Descargaré e instalaré Spring Roo (versión 1.2 RC1 al menos)

· Arrancaré la consola de Roo e instalaré el addon de Cloud Foundry para Roo:

roo> pgp automatic trust

roo>addon install bundle –bundleSymbolicName org.springframework.roo.addon.cloud.foundry

· Desde la consola hago login en Cloud Foundry:

roo> cloud foundry login –email myemail@mail.com –password ****** –cloudControllerUrl http://api.cloudfoundry.com

· Ya puedo usar los commandos cloud foundry:

Como roo>cloud foundry info

· Me crearé un proyecto de Roo de la forma tradicional (como ya hemos visto en varios posts). Podéis hacerlo también así:

o Me creo un fichero proyecto.roo en el raíz del proyecto con este contenido:

project –topLevelPackage com.dw.roo.conference –java 6 –projectName conference

persistence setup –provider HIBERNATE –database HYPERSONIC_IN_MEMORY

entity jpa –class ~.domain.Speaker –testAutomatically

entity jpa –class ~.domain.Talk –testAutomatically

field string –fieldName firstname –class ~.domain.Speaker –notNull

field string –fieldName lastname –notNull

field string –fieldName email –unique –notNull

field string –fieldName organization

field date –fieldName birthdate –type java.util.Date –past –notNull

field number –type java.lang.Long –fieldName age –min 25 –max 60

field string –fieldName title –class ~.domain.Talk –notNull

field string –fieldName description –notNull –sizeMax 4000

field set –fieldName talks –type ~.domain.Talk –class ~.domain.Speaker –cardinality ONE_TO_MANY

field reference –fieldName speaker –type ~.domain.Speaker –class ~.domain.Talk –notNull

controller all –package ~.web

logging setup –level INFO –package ALL_SPRING

(*) Fijaros que el commando entity en la versión 1.2 de Roo es ligeramente diferente….

o Lo lanzo con roo>script –file proyecto.roo

· Compilo el proyecto con roo>perform package

· Ahora ya puedo desplegar la aplicación en Cloud Foundry:

roo>cloud foundry deploy –appName NombreAplicacion –path targetconference-0.1.0.BUILD-SNAPSHOT.war

NOTA: el nombre de la aplicación debe ser único, si no ponéis un nombre único os dará este error:

· Una vez desplegada la aplicación puedo ver las aplicaciones, instancias,…

roo>cloud foundry list apps

· Y ya podemos arrancar la aplicación:

roo>cloud foundry start app –appName LuismiCloudFoundry1

· Y por supuesto acceder a ella en http://luismicloudfoundry1.cloudfoundry.com

· Puedo ver el estado de la aplicación, la instancia,…:

· Los Servicios provisionados:

· Provisionar más memoria para la aplicación:

En el próximo post veremos cómo provisionar otros servicios (por ejemplo como pasar a una base de datos MySQL).

Podéis ver el soporte del addon de Spring Roo a Cloud Foundry aquí,

Esto que hemos visto desde la consola Roo también se puede hacer desde Spring Tool Suite, podéis verlo aquí: http://blog.springsource.com/2011/04/13/using-cloud-foundry-from-sts/

Respuestas

  1. Hola estoy intentado seguir el ejemplo pero no me instala addon de Cloud

    D:\Proyectos\ROO\roo-test>roo
    ____ ____ ____
    / __ \/ __ \/ __ \
    / /_/ / / / / / / /
    / _, _/ /_/ / /_/ /
    /_/ |_|\____/\____/ 1.2.0.RC1 [rev dcaa483]

    Welcome to Spring Roo. For assistance press TAB or type «hint» then hit ENTER.
    roo> pgp automatic trust
    Automatic PGP key trusting enabled (this is potentially unsafe); disable by typing ‘pgp automatic trust’ again
    roo> addon install bundle –bundleSymbolicName org.springframework.roo.addon.cloud.foundry
    Could not find specified bundle with symbolic name: org.springframework.roo.addon.cloud.foundry
    roo>

    Me podeis ayudar ???

    1. Tienes conexión a Internet directa o estás bajo un proxy?

      1. Estoy bajo proxy..

      2. Entonces tienes que usar el comando de Roo >proxy configuration para configurar tu proxy.

      3. al ejecutar proxy configuration me sale:
        *** Your system has no proxy setup ***
        http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html offers useful information.
        For most people, simply edit /etc/java-6-openjdk/net.properties (or equivalent) and set the
        java.net.useSystemProxies=true property to use your operating system-defined proxy settings.

        He editado el fichero net.properties del JAVA_HOME/jre/lib y he añadido la configuracion del proxy
        http.proxyHost=10.142.XX.XXX
        http.proxyPort=XX
        y me sigue sin funcionar …. alguna idea ??
        Gracias por tus molestias

  2. Ya lo he solucionado …el problema era que Windows 7 no dejaba modificar el archivo net.properties, habia que darle permisos de administracion para modificarlo …
    Ya puedo seguir con el ejemplo …
    Gracias por todo

  3. […] El otro día mostrábamos como crear una aplicación con Roo y desplegarla en Cloud Foundry. […]

Deja un comentario