Icefaces, JBoss, Maven2 y
EJB3: Parte 1.
Voy a realizar una serie de
tutoriales encadenados, que pretenden obtener un arquetipo de
proyecto con las siguientes características:
-
IDE: Eclipse 3.1.1
-
Ciclo de vida del proyecto:
Maven2. (usaré el plugin m2eclipse para gestionar maven2 y
eclipse) -
Parte de la Vista /
Controlador: usaré JSF RI (incluida en JBoss) y icefaces -
Parte del Modelo: EJB 3.0
-
Servidor de aplicaciones:
JBoss 4.2.2 -
Base de datos: MySQL
En esta primera parte, nuestro
objetivo será crear la estructura de proyectos en eclipse,
crear los ficheros pom.xml de cada uno de ellos con las dependencias
para empezar a trabajar.
-
Creando estructura de
proyecto en eclipse:Existen
ya algunos tutoriales de Alejandro Pérez explicando como
llevar a cabo esta tarea para que Eclipse y Maven2 puedan superar
sus diferencias:http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=mavenRelease
Básicamente,
lo que vamos a hacer:
-
Crearemos
un proyecto de propósito general y lo denominaremos ‘Padre’. -
Crearemos
un proyecto EJB y lo denominaremos ‘Modelo’ -
Crearemos
un proyecto web dinámico (Dynamic Web Project) y lo
denominaremos ‘Web’ -
Borraremos
los proyectos ‘Modelo’ y ‘Web’ (¡OJO!, NO borraremos
su contenido.) -
Usando
el explorador de archivos de tu Sistema Operativo favorito,
moveremos ambos proyectos (‘Web’ y ‘Modelo’) dentro de
‘Padre’ -
Importaremos
los proyectos ‘Web’ y ‘Modelo’ desde Eclipse: File –
Import:
Nos
habrá quedado una estructura como muestra la imagen:
-
Creando los ficheros
pom.xml
Empezaremos
por el proyecto Padre, que será el que englobe a todos los
módulos. En la raíz del proyecto, crearemos un fichero
pom.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.autentia.tutoriales.icefaces</groupId> <artifactId>Padre</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Padre</name> <description> Este proyecto es el padre de todas los módulos. Mantiene configuraciones comunes. </description> <modules> <module>Web</module> <module>Modelo</module> </modules> <repositories> <repository> <id>java-net</id> <name>java-net</name> <url>http://download.java.net/maven/2</url> </repository> <repository> <id>java.net</id> <url>http://download.java.net/maven/1</url> <layout>legacy</layout> </repository> <repository> <id>jboss</id> <url>http://repository.jboss.com/maven2/</url> </repository> </repositories> <dependencies> <!-- Comunes a los módulos --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> <scope>provided</scope> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version> </dependency> </dependencies> </project> |
A
continuación, crearemos el del proyecto Modelo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.autentia.tutoriales.icefaces</groupId> <artifactId>Padre</artifactId> <version>1.0-SNAPSHOT</version> </parent> <groupId>com.autentia.tutoriales.icefaces</groupId> <artifactId>Modelo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>ejb</packaging> <name>Modelo</name> <description> Módulo encargado del modelo de negocio y de la persistencia de la aplicación. Desarrollado con EJB 3.0. </description> <build> <plugins> <plugin> <artifactId>maven-ejb-plugin</artifactId> <configuration> <ejbVersion>3.0</ejbVersion> <archive> <manifest> <addClasspath>true</addClasspath> </manifest> </archive> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> <version>1.0.1B</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.ejb</groupId> <artifactId>ejb-api</artifactId> <version>3.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>jboss</groupId> <artifactId>jboss-ejb-api</artifactId> <version>4.2.0.GA</version> <scope>provided</scope> </dependency> </dependencies> </project> |
Por
último, crearemos el pom.xml para la parte Web:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.autentia.tutoriales.icefaces</groupId> <artifactId>Padre</artifactId> <version>1.0-SNAPSHOT</version> </parent> <groupId>com.autentia.tutoriales.icefaces</groupId> <artifactId>Web</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>Web</name> <description> Módulo encargado de la vista y el control. JSF RI e Icefaces </description> <dependencies> <!-- Core J2EE --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>javax.el</groupId> <artifactId>el-api</artifactId> <version>1.0</version> <scope>provided</scope> </dependency> <!-- JSF --> <dependency> <groupId>javax.faces</groupId> <artifactId>jsf-api</artifactId> <version>1.2_04-p01</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.faces</groupId> <artifactId>jsf-impl</artifactId> <version>1.2_04-p01</version> <scope>provided</scope> </dependency> <!-- ICEFaces --> <dependency> <groupId>org.icefaces</groupId> <artifactId>icefaces</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.icefaces</groupId> <artifactId>icefaces-comps</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.icefaces</groupId> <artifactId>icefaces-facelets</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>backport-util-concurrent</groupId> <artifactId>backport-util-concurrent</artifactId> <version>3.1</version> </dependency> </dependencies> </project> |
-
Usar el plugin
m2Eclipse para gestionar los proyectos.Configuraremos
los tres proyectos para que sean gestionados por el plugin
m2Eclipse: Si no lo tenéis, está explicado en:
http://m2eclipse.codehaus.org/
Con
esto acabamos la primera parte. En el próximo tutorial,
configuraremos correctamente la parte del módulo Web para
realizar un primer ejemplo.