Francisco Javier Martínez Páez

Consultor tecnológico de desarrollo de proyectos informáticos.

 Ingeniero Técnico en Telecomunicaciones

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación

Somos expertos en Java/J2EE

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2008-01-17

Tutorial visitado 19.408 veces Descargar en PDF
"Icefaces, JBoss, Maven2 y EJB3

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.

  1. 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:




  1. 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:

<?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:

<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:

<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>




  1. 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.



A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL: