Bom, irei durante esses dias tentar demonstrar como criar uma aplicação no JBoss Seam.
Tempo de projeto ? Alguns minutos.
Palavras-chave: Java, JBoss AS, Jboss Seam, Postgre Sql.
Tentarei abordar de forma simples, dividindo em algumas partes:
- Pré-requisitos para implementação
- Utilizar um exemplo existente em um banco de dados em postgre sql
- Implementação do projeto através do framework Seam
- Análise do resultado
- Testes
1. Requisitos para implementação:
Vamos trabalhar com o Eclipse Europa JEE disponível em: http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/europa/winter/eclipse-jee-europa-winter-win32.zip
Obs.: Não é necessário a princípio de uma IDE java, pois todos os procedimentos, classes, páginas web serão geradas automaticamente pelo Seam, sendo a IDE necessária para adptar a suas configurações.
JBoss Seam tools disponível em: http://www.jboss.org/tools/download/index.html
Utilizaremos com servidor de aplicação o JBoss Application Server 4.2.3.GA: http://www.jboss.org/jbossas/downloads
Procedimentos para configuração:
Extrair o eclipse em alguma pasta (ex.: c:\meu_projeto, certifique de que contenha JDK, e uma variável de ambiente JAVA_HOME apontando para o diretório do JDK em seu sistema operacional)
Após isso extrair pra essa mesma pasta o JBoss AS, JBoss Seam e criar um workspace. Exemplo:
c:\meu_projeto\eclipse
c:\meu_projeto\jboss-seam-2.1.0.SP1
c:\meu_projeto\jboss-4.2.3.GA
c:\meu_projeto\workspace
2. Após definir o ambiente certificar os dados necessários para conectar ao banco de dados
(Driver, URL, banco, usuário, senha)
No meu caso precisei incluir a biblioteca postgresql-8.3-603.jdbc4.jar na pasta lib do JBoss-4.2 AS. Faça o mesmo para o banco de sua escolha.
3. Criando o projeto no JBoss SeamPara criarmos todo o projeto precisamos ir pelo console\terminal, até o diretório em que se encontra o JBoss Seam. Ex.: cd c:\meu_projeto\jboss-seam-2.1.0.SP1
Após isso decore o principal comando: seam -help (windows). Com ele você poderá ter a lista de todos os comandos necessários para gerar a aplicação e etc.
Primeiro vamos utilizar o seam setup e apertamos .
setup:
[echo] Welcome to seam-gen :-)
[input] Enter your Java project workspace (the director
Seam projects) [D:/thiago/workspace] [D:/thiago/workspace] .
Aponte para seu workspace,
Depois,
[input] Enter your JBoss home directory [D:/thiago/jboss-4.2.3.GA] [D:/thiag
o/jboss-4.2.3.GA]
Aponte para pasta do seu JBoss,
Depois,
[input] Enter the project name [sgfpe] [sgfpe]
Coloque um nome para seu projeto,
Depois,
[input] Do you want to use ICEfaces instead of RichFaces [n] (y, [n])
Não quero usar o ICEfaces. Basta o richfaces,
Depois,
[input] Select a RichFaces skin [blueSky] ([blueSky], classic, deepMarine, DEFAULT,
emeraldTown, japanCherry, ruby, wine)
Escolha seu skin de preferência,
Depois,
[input] Is this project deployed as an EAR (with EJB components) or a WAR (w
ith no EJB support) [war] (ear, [war])
Formato de arquivo de distrubuição de sua escolha,
Depois,
[input] Enter the Java package name for your session beans [com.sgfpe.sgfpe]
[com.sgfpe.sgfpe]
Coloque um nome para sua package,
Depois,
[input] Enter the Java package name for your entity beans [com.sgfpe.sgfpe]
[com.sgfpe.sgfpe]
Coloque um nome para sua package de entity beans,
Depois,
[input] Enter the Java package name for your test cases [com.sgfpe.sgfpe.tes
t] [com.sgfpe.sgfpe.test]
Coloque um nome para sua package de teste,
Depois,
[input] What kind of database are you using? [postgres] (hsql, mysql, oracle
, [postgres], mssql, db2, sybase, enterprisedb, h2)
Escolha seu banco de dados,
Depois,
[input] Enter the Hibernate dialect for your database [org.hibernate.dialect
.PostgreSQLDialect] [org.hibernate.dialect.PostgreSQLDialect]
Marquei o que teve por padrão,
Depois,
[input] Enter the filesystem path to the JDBC driver jar [D:\thiago\workspac
e\lib\postgresql-8.3-603.jdbc4.jar] [D:\thiago\workspace\lib\postgresql-8.3-603.
jdbc4.jar]
Aponte para a biblioteca JDBC,
Depois,
[input] Enter JDBC driver class for your database [org.postgresql.Driver] [o
rg.postgresql.Driver]
Apenas ....
Depois,
[input] Enter the JDBC URL for your database [jdbc:postgresql:postgres]
[jdbc:postgresql:postgres]
Entre com sua base de dados ....
Depois,
[input] Enter database username [usuario] [usuario]
Entre com o nome do usuário ....
Depois,
[input] Enter database password [****] [****]
Entre com o a senha do usuário do banco de dados ....
Depois,
[input] Enter the database schema name (it is OK to leave this blank) [sgfpe
] [sgfpe]
Entre com um esquema do banco se preferir...
Depois,
[input] Enter the database catalog name (it is OK to leave this blank) [] []
Entre com um catálogo do banco se preferir...
Depois,
[input] Are you working with tables that already exist in the database? [y]
([y], n)
Estamos dizendo que as tabelas ja existem.
Depois,
[input] Do you want to drop and recreate the database tables and data in imp
ort.sql each time you deploy? [n] (y, [n])
Não. Não apague nossas tabelas...
Finalmente....
[delete] Deleting: D:\thiago\jboss-seam-2.1.0.SP1\seam-gen\build.properties
[propertyfile] Creating new property file: D:\thiago\jboss-seam-2.1.0.SP1\seam-g
en\build.properties
[echo] Installing JDBC driver jar to JBoss server
[echo] Type 'seam create-project' to create the new project
BUILD SUCCESSFUL
Total time: 1 minutes 21 seconds
Depois como a própria mensagem já nós diz, instale o JDBC no servidor (copie a lib para a pasta lib) e entao execute o comando: 'seam create-project'
Após isso o seam apresentará outra mensagem como a seguir:
[echo] Type 'seam explode' and go to http://localhost:8080/sgfpe
[echo] Eclipse Users: Add the project into Eclipse using File > New > Proje
ct and select General > Project (not Java Project)
[echo] NetBeans Users: Open the project in NetBeans
BUILD SUCCESSFUL
Total time: 28 seconds
Pronto, nosso projeto já está pronto para ser usado!! Se preferir abra pelo eclipse/Netbeans ou então teste local usando o comando' seam explode'
Para rodar local nao esqueça de verificar se o JBOSS AS está ativo.
Abaixo segue algumas fotos do sistema gerado em menos de 2 min. Até a próxima