Está en la página 1de 37

Crear una aplicacin JBoss Seam con eclipse

06/06/2011 |

Autor elomas

Que es SEAM?
Seam es una potente plataforma de desarrollo de cdigo abierto para construir aplicaciones ricas de
Internet en Java. Seam integra tecnologas como JavaScript asncrono y XML (AJAX), JavaServer Faces
(JSF), Java Persistence (JPA), Enterprise Java Beans (EJB 3.0) y Business Process Management (BPM)
en una unificada y completa solucin de pila, con sofisticadas herramientas.
Seam ha sido diseado desde cero para eliminar la complejidad en la arquitectura y los niveles de la API.
Permite a los desarrolladores ensamblar aplicaciones web complejas con simples clases Java anotadas,
un amplio conjunto de componentes de interfaz de usuario, y muy poco XML. Soporte nico de SEAM
para las conversaciones y la administracin del estado declarativa puede introducir una experiencia de
usuario ms sofisticada y, al mismo tiempo la eliminacin de los errores comunes que se encuentran en
las aplicaciones web tradicionales.
Crear un Aplicacin Seam con eclipse
Una aplicacin Seam la podemos crear mediante seam-gen el cual es una herramienta de linea de
comandos, y mediante el IDE eclipse.
Para nuestro ejemplo vamos a utilizar los siguente:
1.

jdk-6 (Descargar)

2.

eclipse-jee-helios (Descargar)

3.

jbosstools-3.2.0.GA (Descargar)

4.

jboss-seam-2.2.2.Final (Descargar)

5.

jboss-as-distribution-6.0.0.Final (Descargar)

6.

postgresql-8.4.3-1 (Descargar)

7.

postgresql-8.4-701.jdbc (Descargar)

Una vez que hemos decargado todo, instalamos JDK y configuramos el JAVA_HOME, instalamos JBoss
tools en nuestro eclipse, y empezamos (De la instalacin y configuracin de estas herramientas existen
muchos tutoriales).
Empezamos a crear nuestra aplicacin, para lo cual vamos a necesitar una base de datos definida para
nuestra aplicacin, para este ejemplo unicamente vamos a utilizar una base de datos simple en cual
vamos a tener 2 tablas relacionadas.
Aqui le dejo el script de la base da datos que vamos a utilizar:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17

create sequence seq_padre;


create sequence seq_hijo;
create table padre(
id_padre numeric(10,0) primary key,
nombre varchar(50) not null,
descripcion varchar(250),
estado char(3) not null
);
create table hijo(
id_hijo numeric(10,0) primary key,
nombre varchar(50) not null,
descripcion varchar(250),
estado char(3) not null,
id_padre numeric(10,0) references padre(id_padre)
);

Para el ejemplo el nombre de nuestra base de datos va a ser TestSeam, estamos trabajando en nuestro
servidor postgres local por lo tanto la direccin del servidor es localhost, y el puerto es el puerto por
defecto es decir el 5432. Esta informacin la vamos a utilizar mas adelante.

Lo primero que vamos a hacer en este momento es abrir nuestro eclipse al cal instalamos los plugins de
JBoss Tools, y empezamos con la creacin y configuracin del proyecto al cual lo vamos a
denominar SeamTest.
1.- En la barra de men vamos a File > New > Other y se nos abre un wizard para la creacin del
proyecto, en el campo de texto del wizard escribimos la palabra seam, de la siguiente manera:

2.- Seleccionamos la opcion Seam Web Project y damos clic en el botn Next. Nos aparece la
siguiente pgina del wizard

3.- En el campo Project name, ponemos el nombre del proyecto el cual dijimos que se iba a
llamar SeamTest, en el campo Target runtime damos clic en el botn New Runtime Nos aparece la
siguiente pantalla

En esta ventana seleccionamos JBoss Community > JBoss 6.0 Runtime, que es el servidor con el cual
vamos a trabajar en este ejemplo, ademas chequeamos la opcion Create a new local server, y damos
clic en el botn Next >, nos parace la siguiente ventana

En la seccin Home Directory, damos clic el botn Browse y buscamos la carpeta en la que
descomprimimos
nuestro
jboss-as-distribution-6.0.0.Final
que
descargamos,
en
la
seccin Directoryseleccionamos default que es la instancia del servidor en la que va a correr nuestro
proyecto y damos clic en Finish y listo tenemos configurado nuestro runtime.
4.- Damos clic en el botn siguiente de nuestro Wizard New Seam Project y nos aparece las siguiente
pgina del wizard, en esta pgina no vamos a hacer nada unicamente vamos a dar clic en Next >, ya que
aqui se aade las carpetas que van a contener el codigo fuente y no necesitamos mas que la src.

4.- En la cuarta pgina del wizard, tenemos un campo para poner nuestro Context root, que para este
ejemplo va a ser el mismo.El contexto root es el nombre con el cual se va a deployar nuestra aplicacin y
con
el
cual
lo
vamos
a
poder
ver
en
el
navegador
http://<servidor>:<puerto>/<context_root>.Ejm: http://localhost:8080/SeamTest. Y ademas tenemos otro
campo para el Content directory, en este campo vamos a poner el nombre de nuestra carpeta que va a
tener todo el contenido web, por estandar vamos e dejarla con el mismo nombre.

Una vez listo damos clic en el botn Next >.


5.- En la nueva pgina del wizard que nos aparece, debemos realizar las configuraciones JSF de nuestro
proyecto, en la seccion Type dejamos la opcin Library Provided by Target Runtime para que nos coja
las librerias de nuestro servidor.
La seccin JSF Configuration File es nuetro archivo de configuracin para JSF es decir nuestro facesconfig.xml. De igual forma dejamos el valor por defecto al igual que las demas secciones, es decirJSF
Servlet Name, JSF Servlet Class Name.

La seccin URL Mapping Patterns, son las extensiones que nos va a mapear como pginas SEAMque
para este caso son todas las .seam, por eso es que tenemos como valor *.seam.

Una vez que tenemos lista esta pgina del wizard damos clic en el botn Next >.
6.- Esta pgina del wizard es la que va a tener toda la configuracin de nuestro proyecto seam. La
pantalla es la siguiente

En esta ventana vamos primero a agregar nuestro Seam Runtime, para lo cual vamos a la
seccinGeneral en la parte donde dice Seam Runtime le damos clic en el botn Add para agregar un
nuevo runtime de seam, si es que no tenemos agregado uno. Y nos aparece la siguiente ventana.

En esta ventana damos clic en el botn Browse, buscamos la carpeta en la cual descomprimimos
nuestro jboss-seam-2.2.2.Final que descargamos, y damos clic en Aceptar y nuestra ventana deberia
quedar de la siguiente manera

Una vez listo esto damos clic en el botn Finish y listo tenemos configurado nuestro Seam Runtime.
Ahora la pgina de nuestro wizard debera estar de la siguiente manera.

Luego tenemos una seccin que dice Deploy as, y tenemos dos opciones WAR y EAR, nosotros
tenemos que seleccionar una de estas opciones, para nuestro ejemplo vamos a dejar seleccionada la
opcin WAR la cual es por default.
Ahora vamos a la seccin Database, en esta seccin vamos a configurar la conexin a la base de datos
de nuestra aplicacin. Para lo cual en la seccin Database Type seleccionamos PostgreSQL, y en la
seccin Connection profile damos clic en el botn New y nos aparece la siguiente ventana.

En esta ventana seleccionamos nuevamente PostgreSQL, y el la seccin Name le damos un nombre a


nuestra conexin, damos clic en Next > y nos aparece la siguiente ventana, para la configuracin del
driver de conexin.

En esta ventana debemos seleccionar el driver JDBC de postgres, como no tenemos ninguno vamos a
agregar uno. Para eso damos clic el icono que se encuentra en la parte derecha del comboBox, el
botn New Driver Definition. Una vez que damos clic en dicho botn nos parace una nueva ventana.

En esta ventana seleccionamos PostgresSQL JDBC Driver y podemos ver en la parte superior que nos
sale un error, debido a que no encuentra el driver para ello vamos a la pestaa JAR List.

En esta pestaa vamos a dar clic en el botn Add JAR/Zip y se nos abre un navegador de archivos
buscamos nuestro postgresql-8.4-701.jdbc.jar que descargamos y damos clic en Abrir. La pantalla nos
deberia quedar de la siguiente manera.

La ltimo que nos queda hacer es seleccionar la opcin postgresql-8.1-404.jdbc2.jar y dar clic en el
botn Remove JAR/Zip, una vez que realizamos esto vemos que se nos habilita el botn OK damos clic
ahi y hemos terminado de configurar el driver.
Nuevamente regresamos a la pantalla New JDBC Connection Profile pero esta pantalla ya nos aparece
de la siguiente manera.

En esta ventana vamos a colocar la informacin para la conexin a nuestra base de


datos. Database:TestSeam, URL: jdbc:postgresql://localhost:5432/TestSeam, User
name: postgres, Password: ******. Y luego damos clic en el botn Test Connection y deberia
aparecernos algo asi.

Si el mensaje es Ping succeeded! quiere decir que la informacion ingresamos correctamente, y se realizo
la conexin a la base de datos. Entonces damos clic en el botn OK del mensaje, y luego en el
botn Finish de la ventana y asi hemos terminado nuestra configuracin para la seccin Connection
Profile.
En la seccin Database Schema Name, colocamos el nombre de nuestro esquema que en este caso
como no creamos ninguno es public, adicionalmente dejamos en blanco el campo Database Catalog
Name, deseleccionamos las opciones DB Tables already exists in database, y la opcin Recreate
database table and data on deploy.
Y en la ltima seccin Code Generation, ponemos el nombre del paquete que va a contener nuestros
beans, el que va a contener el modelo, y deseleccionamos la opcin Create Test Project ya que no
necesitamos un proyecto para test para este ejemplo.
La ventana nos queda de la siguiente manera.

Una vez que tenemos listo damos click en Finish esperamos un momento, luego nos sale un mensaje
que nos dice que nuestro proyecto esta asociado con seam, si deseamos abrir la perspectiva de seam
damos clic en si y listo hemos creado nuestro proyecto Seam.

Primeros pasos con JBoss Seam

ndice de contenidos.

1.
2.
3.
4.
5.
6.
7.
8.

Introduccin.
Entorno
Configuracin del proyecto (seam setup)
Generando la estructura del proyecto (seam new-project)
Generando la funcionalidad del proyecto (seam generate-entities)
Despliegue del proyecto
Probando la aplicacin
Conclusiones.

1. Introduccin
Este tutorial pretende ser una gua introductoria al Framework JBoss Seam utilizando el seam-gen.
El seam-gen es una utilidad que trae JBoss Seam para crear el cdigo fuente de la aplicacin con
el nico requisito de tener una base de datos del que sacar la lgica de negocio en base al modelo
de datos especificado. El proceso de creacin no puede ser ms sencillo, nos ir preguntando el
nombre del proyecto, ubicacin del servidor de aplicaciones, la base de datos que queremos
utilizar, nombres de paquetes, empaquetamiento del proyecto (ear/war), etc. Con esto generar la
aplicacin que nos servir de base para continuar desarrollando la lgica de negocio y dems
funcionalidades del proyecto. Iremos viendo los pasos necesarios para crear una aplicacin web de
una sencilla biblioteca.

2. Entorno
El tutorial est escrito usando el siguiente entorno:

Hardware: Porttil Acer Aspire 5920G (Core Duo T8300 2.4GHz, 3GB RAM, 320 GB HD).
Sistema operativo: Windows Vista
JBoss Seam 2.2.0.GA
JBoss AS 5.1.0.GA
JDK 1.6
Apache Ant 1.7.1

3. Configuracin del proyecto (seam setup)


Lo primero ser descargarnos el framework JBoss Seam. Para ello vamos a la web oficial y
bajamos el zip. Pinchar aqu
La instalacin es sencilla, basta con descomprimir el zip en un directorio, por ejemplo en
D:\Desarrollo\jboss-seam-2.2.0.GA
Tambin debemos tener instalado el servidor de aplicaciones JBoss AS. Para ello lo descargamos
de la web desde aqu. La instalacin al igual que de Seam es tan sencilla como descomprimir el
zip, por ejemplo D:\Servidores\jboss-5.1.0.GA
Slo nos queda ejecutar el script de creacin de las propiedades del proyecto localizado en la raz
del proyecto, llamado setup. Para ello abrimos una consola y escribimos seam setup. En este
punto es necesario que est instalado Apache Ant. A continuacin Seam nos ir preguntando por

una serie de propiedades que se necesitan para crear la estructura del proyecto y que debemos ir
configurando.

Ubicacin del proyecto: D:\Proyectos\tutoriales\


Ubicacin del servidor JBoss: D:\Servidores\jboss-5.1.0.GA
Dominio utilizado del servidor JBoss: default
Ubicacin del servidor Glassfish: D:\Servidores\Sun\AppServer\AppServer
Dominio utilizado del servidor Glassfish: domain1
Nombre del proyecto: biblioteca
Usar ICEFaces en lugar de RichFaces?: n
Skin utilizado: ruby
Empaquetamiendo del proyecto (ear/war): ear
Nombre del paquete baes: com.autentia.tutoriales
Nombre del paquete de los beans de sesin: com.autentia.tutoriales.action
Nombre del paquete de los beans de entidad: com.autentia.tutoriales.entity
Nombre del paquete de las clases de test: com.autentia.tutoriales.test
Base de datos utilizada: mysql
Directorio al driver de mysql: D:\Drivers\mysql-connector-java-5.1.8-bin.jar
Dialecto de Hibernate: org.hibernate.dialect.MySQLDialect
Clase del Driver JDBC para MySQL: com.mysql.jdbc.Driver
Clase del Datasource JDBC para
MySQL: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
URL de conexin a la base de datos: jdbc:mysql://localhost:3306/biblioteca
Usuario de la base de datos: biblioteca
Password de la base de datos: *****
Nombre de la base de datos: Usar todas las tablas que estn en la base de datos?: y
Borrar la base de datos en cada despliegue?: n

Si todo ha ido bien saldr la siguiente traza:


view plainprint?

1. [propertyfile] Creating new property file: D:\Desarrollo\jboss-seam2.2.0.GA\seam-gen\build.properties


2.
[echo] Installing JDBC driver jar to JBoss AS
3.
[copy] Copied 1 empty directory to 1 empty directory under D:\Servidores\
jboss-5.1.0.GA\server\default\lib
4.
5. init:
6.
7. init-properties:
8.
[echo] D:/Servidores/jboss-5.1.0.GA
9.
10. validate-workspace:
11.
12. validate-project:
13.
14. settings:
15.
[echo] JBoss AS home: D:/Servidores/jboss-5.1.0.GA
16.
[echo] GlassFish home: D:/Servidores/Sun/AppServer/AppServer
17.
[echo] Project name: biblioteca
18.
[echo] Project location: D:/Proyectos/tutoriales
19.
[echo] Project type: ear
20.
[echo] IceFaces: n
21.
[echo] Action package: com.autentia.tutoriales.action
22.
[echo] Model package: com.autentia.tutoriales.entity
23.
[echo] Test package: com.autentia.tutoriales.test
24.
[echo] JDBC driver class: com.mysql.jdbc.Driver
25.
[echo] JDBC DataSource class: com.mysql.jdbc.jdbc2.optional.MysqlDataSour
ce
26.
[echo] Hibernate dialect: org.hibernate.dialect.MySQLDialect

27.
[echo] JDBC URL: jdbc:mysql://localhost:3306/biblioteca
28.
[echo] Database username: biblioteca
29.
[echo] Database password: *****
30.
[echo]
31.
[echo] Type 'seam create-project' to create the new project
32. BUILD SUCCESSFUL
Tambin se habr generado un build.properties en D:\Desarrollo\jboss-seam-2.2.0.GA\seam-gen
para que con una tarea de Ant se genere todo el proyecto
Antes de ejecutar el script de creacin del proyecto necesitamos tener una base de datos de donde
Seam pueda sacar la estructura necesaria. La base de datos de la biblioteca que vamos a crear es
muy sencilla, tendr tres tablas (libro, autor y reserva). El script de creacin de la base de datos y
las tablas es el siguiente:
view plainprint?

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.

--- Create schema biblioteca


-CREATE DATABASE IF NOT EXISTS biblioteca;
USE biblioteca;
--- Definition of table `libro`
-CREATE TABLE `libro` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) NOT NULL,
`autor` varchar(45) NOT NULL,
`isbn` varchar(45) NOT NULL,
`fecha_publicacion` date NOT NULL,
`editorial` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--- Definition of table `socio`
-CREATE TABLE `socio` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) NOT NULL,
`apellidos` varchar(45) NOT NULL,
`numero_socio` varchar(45) NOT NULL,
`fecha_alta` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--- Definition of table `reserva`


-CREATE TABLE `reserva` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`fecha_reserva` date NOT NULL,
`id_libro` int(10) unsigned NOT NULL,
`id_socio` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `fk_reserva_socio` FOREIGN KEY (`id_socio`) REFERENCES `socio` (`
id`),
42. CONSTRAINT `fk_reserva_libro` FOREIGN KEY (`id_libro`) REFERENCES `libro` (`
id`)
43. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4. Generando la estructura del proyecto (seam new-project)


Ya estamos en disposicin de crear nuestro proyecto de biblioteca. Para ello desde la consola
invocamos la tarea de ant seam new-project que crea el proyecto en base a las propiedades
configuradas anteriormente.
Los fuentes generados estarn en el directorio que le indicamos en el paso anterior,
D:\Proyectos\tutoriales\biblioteca

Como se puede ver nos ha creado los ficheros de configuracin de Eclipse (.classpath y .project) y
tambin de Netbeans (carpeta nbproject) para que podamos abrir el proyecto en nuestro IDE
favorito.
Si navegamos por la estructura de directorios que nos ha creado vemos algunas clases
interesantes, por ejemplo las clases Authenticator y AuthenticatorBean dentro del directorio
src\main\com\autentia\tutoriales\entity para securizar nuestra biblioteca y que nicamente
puedan acceder usuarios autorizados. Por defecto aade el siguiente cdigo:
view plainprint?

1. @Stateless
2. @Name("authenticator")
3. public class AuthenticatorBean implements Authenticator {
4.
@Logger private Log log;
5.
6.
@In Identity identity;
7.
@In Credentials credentials;
8.

9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23. }

public boolean authenticate()


{
log.info("authenticating {0}", credentials.getUsername());

//write your authentication logic here,


//return true if the authentication was
//successful, false otherwise
if ("admin".equals(credentials.getUsername()))
{
identity.addRole("admin");
return true;
}
return false;
}

5. Generando la funcionalidad del proyecto


Ahora vamos a crear las entidades de nuestro modelo y la lgica de negocio para las operaciones
CRUD (alta, baja, modificacin y listado) de las entidades a partir de las tablas de la base de
datos. Para ello ejecutamos la tarea de ant seam generate-entities
Esta tarea genera el cdigo de las entidades Libro, Usuario y Reserva y los componentes Seam
que se encargarn de la lgica de negocio.
Por otro lado crea toda la parte web, pantalla de login, pgina de inicio de la aplicacin, men de
navegacin, pginas de creacin y listado de cada entidad, reglas de navegacin, configuracin de
componentes, seguridad, etc.

6. Despliegue del proyecto


Con lo que ya tenemos podemos desplegar la aplicacin en un servidor de aplicaciones (recordar
que dijimos en la configuracin del proyecto que queramos empaquetar la aplicacin como un
ear). En nuestro caso utilizaremos JBoss ya que los fuentes generados estn preparados para este
servidor aunque si queremos desplegar en Glassfish no habra problema, se incluye un script de
Ant (glassfish-build.xml), que lo permite.
Gracias al build.xml que se encuentra en el raz del proyecto, el despliegue se reduce a ejecutar la
tarea deploy. Podemos ejecutarla a travs de Netbeans (o Eclipse) o bien desde la consola
ejecutanto ant deploy

La tarea deploy se encarga de compilar el proyecto, empaquetarlo como un ear y echarlo al


directorio deploy del servidor JBoss. Tambin copiar el datasource necesario para la conexin a la
base de datos.

7. Probando la aplicacin
Antes de arrancar el servidor ser necesario copiar el driver MySQL al directorio server/default/lib
de JBoss. Para arrancar ejecutamos el script D:\Servidores\jboss-5.1.0.GA\bin\run.bat y entramos
en la aplicacin mediante http://localhost:8080/biblioteca

Nos logamos en la aplicacin pinchando en la opcin 'Login' situada en la parte superior derecha.
Por defecto Seam configura la seguridad de manera que permite ver los listados sin necesidad de
estar logado pero s que lo requiere para dar de alta, modificar o borrar una entidad. Esta
lgicamente podremos configurarlo en funcin de nuestras necesidades. Observad tambin que los
textos no estn estn en ingls. Para ponerlos en espaol basta con crear un
messages_es.properties y aadir un nuevo soporte para el idioma espaol en el faces-config.xml

Ya slo nos queda probar la aplicacin que nos ha generado Seam. Para ello accedemos a las
opciones 'Libro List' y 'Socio List' para dar de alta unos cuantos datos con los que probar.
Alta de un libro

Listado de libros

Listado de socios

Realizada un reserva, pestaa libro

Realizada un reserva, pestaa socio

La funcionalidad que se ha generado automticamente contiene todo lo necesario para realizar


login/logout de usuarios, crear, editar, borrar, listar, ordenar los campos del listado, paginacin de
los resultados, bscador avanzado de cada entidad por cualquiera de sus atributos, etc. Como vis
sin escribir ni una sla lnea de cdigo. nicamente tendramos que internacionalizar los textos y
cambiar los patrones de formateo de fechas ya que estn en formato MM/dd/yyyy y tendramos
una aplicacin completa eso s, al gusto de Seam.
Esto puede que no nos cuadre con nuestros requisitos aunque s que nos sirve para ver cmo
montan la arquitectura del proyecto que se centraliza en los componentes anotados con @Name.
Por ejemplo para el caso de la entidad Libro, nos ha creado los componentes LibroHome y
LibroList. El primero se encarga de la creacin de nuevas instancias de tipo Libro extendiendo la
clase EntityHome que proprociona la funcionalidad para realizar todas las operaciones necesarias
para los CRUD. El segundo componente se encarga de aadir los parmetros de bsqueda de la
entidad para listar los libros extendiendo de EntityQuery que ya se encarga de lanzar las queries.
Componente LibroHome
view plainprint?

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

package com.autentia.tutoriales.action;
import
import
import
import
import

com.autentia.tutoriales.entity.*;
java.util.ArrayList;
java.util.List;
org.jboss.seam.annotations.Name;
org.jboss.seam.framework.EntityHome;

@Name("libroHome")
public class LibroHome extends EntityHome<Libro> {

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

public void setLibroId(Integer id) {


setId(id);
}
public Integer getLibroId() {
return (Integer) getId();
}
@Override
protected Libro createInstance() {
Libro libro = new Libro();
return libro;
}
public void load() {
if (isIdDefined()) {
wire();
}
}
public void wire() {
getInstance();
}
public boolean isWired() {
return true;
}
public Libro getDefinedInstance() {
return isIdDefined() ? getInstance() : null;
}
public List<Reserva> getReservas() {
return getInstance() == null ? null : new ArrayList<Reserva>(
getInstance().getReservas());
}

Componente LibroList
view plainprint?

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.

package com.autentia.tutoriales.action;
import
import
import
import

com.autentia.tutoriales.entity.*;
org.jboss.seam.annotations.Name;
org.jboss.seam.framework.EntityQuery;
java.util.Arrays;

@Name("libroList")
public class LibroList extends EntityQuery<Libro> {
private static final String EJBQL = "select libro from Libro libro";

private static final String[] RESTRICTIONS = {


"lower(libro.autor) like lower(concat(#{libroList.libro.autor},'%'
))",
15.
"lower(libro.editorial) like lower(concat(#{libroList.libro.editor
ial},'%'))",
16.
"lower(libro.isbn) like lower(concat(#{libroList.libro.isbn},'%'))
",
17.
"lower(libro.nombre) like lower(concat(#{libroList.libro.nombre},'
%'))",};

18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30. }

private Libro libro = new Libro();


public LibroList() {
setEjbql(EJBQL);
setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
setMaxResults(25);
}
public Libro getLibro() {
return libro;
}

Si queremos generar la interfaz con ICEFaces en lugar de Richfaces nicamente tendramos que
cambiar el parmetro 'icefaces=y' dentro del build.properties generado dentro de
D:\Desarrollo\jboss-seam-2.2.0.GA\seam-gen\build.properties.

8. Conclusiones.
Como aspecto ms importante a destacar de la utilidad seam-gen de JBoss Seam es su facilidad
de uso y la flexibilidad que te da, ya que permite configurar el proyecto a nuestro gusto. Tambin
es verdad que no aporta todo lo que necesitamos pero es til para empezar con un proyecto con
JBoss Seam desde cero.
Como aspecto negativo est que no nos crea el proyecto para maven, espero que esto lo mejoren
en futuras versiones.

http://www.jboss.org/jbosside/download/old_downloads.html
http://download.jboss.org/jbosstools/updates/stable/helios/
http://www.jboss.com/products/platforms/application/
para descargar herramientas jboss

También podría gustarte