|
|
(No se muestran 6 ediciones intermedias de 2 usuarios) |
Línea 1: |
Línea 1: |
− | == Herramientas y Versiones ==
| |
| | | |
− | * JDK 1.6 UPDATE 21
| |
− | * Spring Roo 1.0.2
| |
− | * Apache Maven 2.2.1
| |
− |
| |
− |
| |
− | Con la correspondiente configuración en las variables de entorno de la pc (PATH y JAVA_HOME).
| |
− |
| |
− | == Configuraciones iniciales ==
| |
− |
| |
− | * Desactivamos antivirus de pc según [http://www.dosideas.com/wiki/Spring_Roo#Error_durante_la_ejecuci.C3.B3n_de_Roo recomendación de página inicial Spring Roo y el error durante la ejecución]
| |
− | * Parametros del proxy a utilizar. En Apache Maven, en el archivo settings.xml, es necesario configurar el proxy para que [http://www.dosideas.com/wiki/Maven Maven] pueda conectarse al repositorio de la web y bajarse lo que necesita tener sincronizado en la pc para las ejecuciones locales de la aplicación:
| |
− |
| |
− | <code xml>
| |
− | <proxy>
| |
− | <active>true</active>
| |
− | <protocol>http</protocol>
| |
− | <username>nombre del usuario de conexion</username>
| |
− | <password>clave</password>
| |
− | <host>servidor</host>
| |
− | <port>puerto</port>
| |
− | </proxy>
| |
− | </code>
| |
− |
| |
− | == Creación del proyecto ==
| |
− |
| |
− | El proyecto ejemplo es para una aplicación web básica para atender pedidos en una pizzeria. Donde se contará con la posibilidad de tomar pedidos de pizza/s y de crear nuevos tipos de pizzas. Una pizza está compuesta de una base y una o más cubiertas.
| |
− |
| |
− | El diagrama de clases representa un modelo simplificado del dominio problema de la pizzeria.
| |
− |
| |
− | Es un buen punto de partida para el proyecto en cuestión a fin de entregar un primer prototipo de la aplicación para el dueño del producto.
| |
− |
| |
− | [[Archivo:DiagramaDominioPizzeria.jpg]]
| |
− |
| |
− | * Paso 1: Crear carpeta del proyecto
| |
− |
| |
− | <code>
| |
− | mkdir pizzaDosIdeas
| |
− | cd pizzaDosIdeas
| |
− | roo
| |
− | </code>
| |
− |
| |
− | Nota: con el comando 'hint' se obtiene cual es el siguiente paso para generar el proyecto.
| |
− |
| |
− | * Paso 2: Crear el proyecto Java
| |
− |
| |
− | <code>
| |
− | project --topLevelPackage com.springsource.roo.pizzaDosIdeas
| |
− | </code>
| |
− |
| |
− | * Paso 3: Configurar el ORM y la base de datos del sistema
| |
− |
| |
− | <code>
| |
− | persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
| |
− | </code>
| |
− |
| |
− | * Paso 4: Crear las entidades, atributos y como se relacionan
| |
− |
| |
− | <code>
| |
− | entity --class ~.domain.Cubierta --testAutomatically
| |
− | field string --fieldName nombre --notNull --sizeMin 2
| |
− |
| |
− | entity --class ~.domain.Base --testAutomatically
| |
− | field string --fieldName nombre --notNull --sizeMin 2
| |
− |
| |
− | entity --class ~.domain.Pizza --testAutomatically
| |
− | field string --fieldName nombre --notNull --sizeMin 2
| |
− | field number --fieldName precio --type java.lang.Float
| |
− | field set --fieldName coberturas --element ~.domain.Cubierta
| |
− | field reference --fieldName base --type ~.domain.Base
| |
− |
| |
− | entity --class ~.domain.Pedido --testAutomatically
| |
− | field string --fieldName nombre --notNull --sizeMin 2
| |
− | field string --fieldName direccion --sizeMax 30
| |
− | field number --fieldName importe --type java.lang.Float
| |
− | field date --fieldName fechaEntrega --type java.util.Date
| |
− | field set --fieldName pizzas --element ~.domain.Pizza
| |
− | </code>
| |
− |
| |
− | * Paso 5: Ejecutar test y, según IDE desarrollo, ejecutar tarea para estructurar proyecto. Se puede utilizar [http://www.dosideas.com/wiki/index.php?title=Uso_de_Roo_desde_SpringSource_Tool_Suite&action=edit&redlink=1 STS].
| |
− |
| |
− | <code>
| |
− | perform tests
| |
− | perform eclipse
| |
− | </code>
| |
− |
| |
− | * Paso 6: Crear la capa web con los test de selenium para esa capa
| |
− |
| |
− | <code>
| |
− | controller all --package ~.web
| |
− | selenium test --controller ~.web.CubiertaController
| |
− | selenium test --controller ~.web.BaseController
| |
− | selenium test --controller ~.web.PizzaController
| |
− | selenium test --controller ~.web.PedidoController
| |
− | </code>
| |
− |
| |
− | Y ahora sí, generamos el paquete y lo desplegamos en un contenedor web:
| |
− |
| |
− | <code>
| |
− | perform package
| |
− | quit (salimos de roo)
| |
− | mvn tomcat:run (en la carpeta raiz del proyecto)
| |
− | </code>
| |
− |
| |
− | Y tenemos la aplicación corriendo en http://localhost:8080/pizzadosideas/ !!!!
| |
− |
| |
− | == Tareas de solución de problemas ==
| |
− |
| |
− | * Si al desplegar el proyecto en el servidor de aplicaciones, [http://www.dosideas.com/wiki/Maven Maven] perdió la dependencia con JAXB, entoces necesitarás agregar la dependencia en pom.xml del proyecto:
| |
− |
| |
− | <code xml>
| |
− | <dependency>
| |
− | <groupId>javax.xml.bind</groupId>
| |
− | <artifactId>jaxb-api</artifactId>
| |
− | <version>2.1</version>
| |
− | <exclusions>
| |
− | <exclusion>
| |
− | <groupId>javax.xml.stream</groupId>
| |
− | <artifactId>stax-api</artifactId>
| |
− | </exclusion>
| |
− | <exclusion>
| |
− | <groupId>javax.activation</groupId>
| |
− | <artifactId>activation</artifactId>
| |
− | </exclusion>
| |
− | </exclusions>
| |
− | </dependency>
| |
− | <dependency>
| |
− | <groupId>com.sun.xml.bind</groupId>
| |
− | <artifactId>jaxb-impl</artifactId>
| |
− | <version>2.1.5</version>
| |
− | <scope>runtime</scope>
| |
− | </dependency>
| |
− | </code>
| |
− |
| |
− | [http://forum.springsource.org/showthread.php?t=85098 Mas ayuda de la dependencia de Maven con JAXB]
| |