Tutorial de Introducción a Grails



Documentos relacionados
Manual de NetBeans y XAMPP

TUTORIAL ACADÉMICO. Programación II- Taller de Programación I Fa.CENA. UNNE

Para poder instalar el producto, tendremos que obtener el instalador apropiado para nuestro entorno hardware y software.

Desarrollo de Servicios Web con JBuilder

U.E JUAN DE VELASCO CREAR DATOS EN SQL

Como Crear Distro Personalizada

Formas de llevar a cabo un backup de una base de datos MySQL

Una App para Facebook

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse

REQUISITOS DEL SISTEMA. Software Servidor. Cliente. Hardware Servidor. Cliente

Hello, Thanks for signing up for OpenShift! Getting started is easy.

Instalación de Tomcat7 en Ubuntu

1. El entorno de desarrollo Eclipse

Descarga, instalación y uso de herramientas:

Administración mediante políticas con ESET Remote Administrator

Instalación y configuración de un servidor de streaming con Icecast en Linux. Vicente Sánchez Patón I.E.S Gregorio Prieto.

INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL

INSTALAR UBUNTU DESDE WINDOWS

Manual de instalación de Java Runtime Environment.

INSTALAR WORDPRESS.ORG VÍA FTP

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

CONFIGURACIÓN DE SOFTPHONES

Al ejecutar esta aplicación tenemos lo siguiente: Pulsamos en Wizard mode y nos aparece lo siguiente:

Versatils. Apéndice. ODBC Orígenes de datos. ODBC Orígenes de datos.

Guía de instalación del servidor

Sitios remotos. Configurar un Sitio Remoto

HOW TO SOBRE LA CREACION DE UNA DISTRIBUCION PERSONALIZADA DE LINUX

Manual CMS Mobincube

INSTALACION MANUAL DE ECLIPSE EN UBUNTU

Cómo crear un fichero de ayuda para tus aplicaciones?

DOMINIO CON IP DINÁMICA

INSTITUTO TECNOLÓGICO DE SALTILLO

TRABAJO GRUPAL TEMA: COMO CREAR BASE DE DATOS EN SQL

Correo Electrónico: Webmail: Horde 3.1.1

Tutorial: Primeros Pasos con Subversion

1. Instalación de productos

SUBIR ARCHIVOS CON FTP. TRABAJAR EN UN SERVIDOR REMOTO. CREAR UNA PÁGINA WEB CON PROGRAMACIÓN PHP. (CU00814B)

INSTALACION DE UN SERVIDOR PENTAHO 5.2 CON POSTGRESQL 9.1 EN LINUX CENTOS 6.6 de 32 BITS

Actividad 1: Utilización cliente FTP (mediante línea de comandos, entornos gráficos y navegadores/exploradores) (I).

Lazarus Free Pascal Compiler

Internet Information Server

Definiciones. Tema 21_Módulos Menú 1

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB CON DOCUMENTUM

1. El entorno de desarrollo Eclipse

Social Coding GIT - El control de versiones es la gestión de los diversos cambios que se realizan sobre algún archivo, en este caso, código.

Instalación de cygwin-x. Pablo Sanz Mercado.

Ejercicio 1. Instalación de JDK, Eclipse, GlassFish y MySql. Java EE. Ejercicio 1. Instalación de JDK, Eclipse, GlassFish y MySql

Unidad Didáctica 12. La publicación

UNIDAD DIDACTICA 16 USUARIOS SAMBA EN UN CONTROLADOR DE DOMINIO LINUX SERVER

CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES, BILIB RECETA TECNOLÓGICA REALIZACIÓN DE COPIAS DE SEGURIDAD CON GSYNC

FortiReporter

Manual De Instalación MySQl 5.1 MANUAL DE INSTALACIÓN Y CONFIGURACIÓN DE MYSQL

Tutorial de instalación

INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL

Dossier de prácticas

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

12 Minería de Datos Reglas de asociación.

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Gestión de Subtotales en Documentos de Venta WhitePaper Febrero de 2007

UNIVERSIDAD PONTIFICIA COMILLAS Escuela Técnica Superior de Ingeniería (ICAI) 5º Ingeniería Informática Ingeniería del software II Curso 2009/10

30 de Mayo de

Instalación y Configuración de un Servidor FTP

How to Crear Servidor Samba

MDG-Carreras 2014 Cronómetro y Gestión de Carreras Deportivas. Índice. Instalación de los archivos... 3

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse

CVS Concurrent Versions System Manual de Usuario

Guia rápida EPlus Cliente-Servidor

TUTORIAL DE INSTALACIÓN Y CONFIGURACIÓN SERVIDOR LOCAL (MYSQL) Facturar en Línea

Configuración de puertos para módem de Infinitum Thomson

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

COMO HACER UNA FACTURA ELECTRONICA PARA EL AYUNTAMIENTO DE GUILLENA

Guía de Instalación de Java y jedit. Alumno Colaborador de la Asignatura

Manual de Creación de Boletín

Manual de Instalación y primeros pasos de MySql WorkBeanch Universidad Tecnológica de Izucar de matamoros. -Fuentes-G,Danelly- T-, C- Adrian G.

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse

Instrucciones para la instalación de TPV Virtual CECA Módulo para Prestashop desarrollado por OBSolutions

Servidor Local (MYSQL)

Vamos a explicar como configurar una cuenta IMAP en Pegasus y como enviar correo usando autentificación en salida y protocolo TLS.

MANUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL SUBIDA Y PUBLICACION DE DOCUMENTOS PARTE II

Filezilla. Cliente FTP para Windows

En este caso presionamos ENTER para empezar nuestra instalación

1. Creación del repositorio

TUTORIAL DESARROLLO DE APLICACIONES PARA EVOLUTION CON MS ACCESS

Configurar un Servidor FTP. Serv-U

WEB SERVICES CON AXIS

Carrera: Analista de Sistemas. Asignatura: Resolución de Problemas y Algoritmos

Conectar Flash con Access usando MDM Zinc

Tarea 1 Programación José Luis Comesaña

Instituto Tecnológico de Las Américas (ITLA)

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.

Servidor de Mail (Postfix)

Acceder a correo de 1000tentaciones.com a través de web.

Manual de usuario de Windows Live Writer

Guía de Instalación de la JDK y del Eclipse

Laboratorio de Redes y Sistemas Operativos Trabajo Práctico Final

UNIDAD DIDACTICA 15 CONVERTIR UN EQUIPO LINUX SERVER EN CONTROLADOR DE DOMINIO

Transcripción:

Tutorial de Introducción a Grails Adrián Cepillo Macías 7 de marzo de 01 1

Índice Índice 1 1. Instalación de Grails. Creando nuestra aplicación 3. Importando datos de prueba. Configuración del Data Source 5 5. Ampliando nuestra aplicación 6 5.1. Creando la clase Author.............................. 6 5.. Relacionando con GORM............................. 7 5.3. Modificando un controlador generado....................... 7 5.. Cambiemos de estilo................................ 7 1

1. Instalación de Grails Siguiendo con el tutorial anterior ahora vamos a instalar Grails de nuevo manualmente. Primero descargar la aplicacion desde aquí. La extraemos en el directorio que prefiramos. Luego establecer una variable de entorno: $ export GRAILS HOME= /RUTA EXTRACCION/bin Podemos hacer esto permanente introduciendo este comando al final del fichero /.bashrc. Aún así nosotros no usaremos grails por consola, se muestra esta instalación por si se quiere usar grails independientemente de eclipse. Nosotros veremos en este tutorial algunos de los comandos que grails contiene para crear una aplicacion, testearla,... pero todo desde el prompt que nos ofrece Eclipse.. Creando nuestra aplicación Vamos a crear de nuevo la aplicación Book. Creamos un nuevo proyecto, esta vez elegiremos una instalación específica. Para ello debemos clickar en Configure Grails Installations y añadiremos la versión que acabamos de descargarnos, indicando el directorio en el que se encuentra. Nota: El comando de Grails para crear un proyecto es, $ grails create-app mi-proyecto. Eclipse no permite crear un proyecto, introduciendo este comando en el prompt. Para conocer algunos de los comandos de Grails vamos a usar el prompt que nos presenta Eclipse STS. Podemos encontrarlo en Navigate->Open Grails Commands Prompt. O clickar en el simbolo de Grails en la barra de herramientas o pulsar Ctrl+Alt+Shift+G (Cmd+Alt+Shift+G en Mac).

Con Ctrl+Space (Cmd+Space) nos mostrará el asistente. Ahora crearemos la clase de dominio introduciendo en el prompt: grails> create-domain-class org.example.book Modificamos el código: 3 class Book { String title 5 String author 6 7 static constraints = { 8 title(blank: false) 9 author(blank: false) 10 } 11 } Y lo mismo para el controlador: grails> create-controller org.example.book 3 class BookController { 3

5 def scaffold = Book 6 } Corremos la aplicación ejecutando: grails> run-app 3. Importando datos de prueba Es probable que queramos probar la aplicación con ciertos datos y sería muy pesado tener que introducirlos a mano una y otra vez. Para ello podemos modificar el fichero de configuración BootStrap.groovy, dentro de conf en la jerarquía del proyecto. 1 import org.example.book 3 class BootStrap { 5 def init = { servletcontext -> 6 // Check whether the test data already exists. 7 if (!Book.count()) { 8 new Book(author: "John R. R. Tolkien", title: "The Simarillion"). save(failonerror: true) 9 new Book(author: "John R. R. Tolkien", title: "The Hobbit").save( failonerror: true) 10 new Book(author: "John R. R. Tolkien", title: "The Lord of the Rings").save(failOnError: true) 11 new Book(author: "George R. R. Martin", title: "A Song of Ice and Fire: 1 A Game of Thrones").save(failOnError: true) 1 new Book(author: "George R. R. Martin", title: "A Song of Ice and Fire: A Clash of Kings").save(failOnError: true) 13 new Book(author: "George R. R. Martin", title: "A Song of Ice and Fire: 3 A Storm of Swords").save(failOnError: true) 1 new Book(author: "George R. R. Martin", title: "A Song of Ice and Fire: A Feast for Crows").save(failOnError: true) 15 } 16 } 17 18 def destroy = { 19 } 0 } Como podemos comprobar hemos redefinido init de esta forma cada vez que se inicie la aplicación se importaran estos datos a el modelo señalado. Debemos notar la llamada a Book.count(). Este método devuelve el número de libros que existen ya en la base de datos. Con el if(){...} decimos que en caso que no existan otros datos de testeo, se introduzcan estos datos.

Por otra parte, llamamos al método Book.save(), el cuál guarda el objeto en la base de datos. Y establecemos la opción failonerror: true indicando que se lance una excepción en caso que el método falle.. Configuración del Data Source Hasta ahora hemos estado trabajando con la base de datos HSQLDB en memoria, para desarrollo y testeo. Vamos a configurar una base de datos alternativa. Para ello modificamos el fichero DataSource.groovy. 1 datasource { pooled = true 3 driverclassname = "org.hsqldb.jdbcdriver" username = "sa" 5 password = "" 6 } 7 hibernate { 8 cache.use_second_level_cache = true 9 cache.use_query_cache = true 10 cache.provider_class = net.sf.ehcache.hibernate.ehcacheprovider 11 } 1 // environment specific settings 13 environments { 1 development { 15 datasource { 16 dbcreate = "create-drop" // one of create, create-drop, update 17 url = "jdbc:hsqldb:mem:devdb" 18 } 19 } 0 test { 1 datasource { dbcreate = "update" 3 url = "jdbc:hsqldb:mem:testdb" } 5 } 6 production { 7 datasource { 8 dbcreate = "update" 9 driverclassname = "com.mysql.jdbc.driver" 30 url = "jdbc:mysql://localhost/mi-proyecto" 31 username="root" 3 password="root" 33 } 3 } 35 } En este caso estamos usando Mysql. Grails ya tiene el driver para JDBC pero es necesario descomentar varias ĺıneas del fichero BuildConfig.groovy. 5

1 grails.project.class.dir = "target/classes" grails.project.test.class.dir = "target/test-classes" 3 grails.project.test.reports.dir = "target/test-reports" //grails.project.war.file = "target/${appname}-${appversion}.war" 5 grails.project.dependency.resolution = { 6 // inherit Grails default dependencies 7 inherits("global") { 8 // uncomment to disable ehcache 9 // excludes ehcache 10 } 11 log "warn" // log level of Ivy resolver, either error, warn, info, debug or verbose 1 repositories { 13 grailsplugins() 1 grailshome() 15 grailscentral() 16 17 // uncomment the below to enable remote dependency resolution 18 // from public Maven repositories 19 mavenlocal() 0 mavencentral() 1 mavenrepo "http://snapshots.repository.codehaus.org" mavenrepo "http://repository.codehaus.org" 3 mavenrepo "http://download.java.net/maven//" mavenrepo "http://repository.jboss.com/maven/" 5 } 6 dependencies { 7 // specify dependencies here under either build, compile, runtime, test or provided scopes eg. 8 9 runtime mysql:mysql-connector-java:5.1.13 30 } 31 } 5. Ampliando nuestra aplicación 5.1. Creando la clase Author Vamos a añadir algunos elementos nuevos a la aplicación empezando por crear otra clase llamada Author que relacionar con Book. Se muestra primero el código de la domain class: 3 class Author { 5 String name 6 String surname 6

7 8 static constraints = { 9 name(blank: false) 10 surname(blank: false) 11 } 1 } Y por otra parte el controlador: 3 class AuthorController { 5 def scaffold = Author 6 } 5.. Relacionando con GORM 3 class Author { static hasmany = [book:book] 5 6 String name 7 String surname 8 9 static constraints = { 10 name(blank:false) 11 surname(blank:false) 1 } 13 1 } 3 class Book { String title 5 Author author 6 7 } 5.3. Modificando un controlador generado 5.. Cambiemos de estilo 7