Este post é o primeiro de uma série baseada na
documentação do Seam e mostra um passo a passo detalhado de como fazer uma aplicação com extensão .war com jboss seam rodar no próprio JBoss e na sequência de posts irei mostrar a migração deste projeto para o Weblogic Server 10 em Ubuntu 10.04 com Mysql. Não entro em detalhes sobre download e da configuração do Seam, Jboss, Weblogic ou MySQL neste post e pressuponho que o ambiente utilizado já tenha estes produtos instalados.
Vamos ao passo a passo:
O primeiro passo é gerar um novo setup de projeto do Seam abrindo um console shell e navegando para o diretório raiz do seam no seu ambiente e então executar o comando:
./seam setup
Dica: Para o comando executar corretamente coloquei a seguinte entrada apontando para uma instalação válida de JDK no meu ambiente bem no início do arquivo seam antes do comentário "# Validate the JDK installation".
JAVA_HOME=/home/mmaia/Oracle/Middleware_wl10.3.3/jdk160_18
export JAVA_HOME
Na execução do setup basta responder aos questionamentos conforme seu ambiente local.
Segue abaixo a saída do comando seam setup que utilizei no meu computador para este exemplo abaixo, favor adaptar ao seu ambiente conforme necessidade:
mmaia@mmaia-laptop:~/tools/jboss-seam-2.2.0.GA$ ./seam setup
SEAM_HOME: /home/mmaia/tools/jboss-seam-2.2.0.GA
Using seam-gen sources from: /home/mmaia/tools/jboss-seam-2.2.0.GA/seam-gen
Buildfile: /home/mmaia/tools/jboss-seam-2.2.0.GA/seam-gen/build.xml
init:
setup:
[echo] Welcome to seam-gen 2.2.0.GA :-)
[echo] Answer each question or hit ENTER to accept the default (in brackets)
[echo]
[input] Enter the directory where you want the project to be created (should not contain spaces) [/home/mmaia/projects] [/home/mmaia/projects]
/home/mmaia/workspaceGalileoJBossSeam
[input] Enter your JBoss AS home directory [C:/Program Files/jboss-5.1.0.GA] [C:/Program Files/jboss-5.1.0.GA]
/home/mmaia/tools/jboss-5.1.0.GA
[input] Enter your JBoss AS domain [default] [default]
seamWeblogic
[input] Enter your GlassFish V2 or V3 home directory (Ignore if you aren't deploying to GlassFish) [C:/Program Files/glassfish-v2.1] [C:/Program Files/glassfish-v2.1]
[input] Enter your GlassFish domain (Ignore if you aren't deploying to GlassFish) [domain1] [domain1]
[input] Enter the project name [myproject] [myproject]
seam_weblogic
[echo] Accepted project name as: seam_weblogic
[input] Do you want to use ICEfaces instead of RichFaces? [n] (y, [n])
n
[input] skipping input as property icefaces.home.new has already been set.
[input] Select a RichFaces skin [glassX] (blueSky, classic, darkX, deepMarine, DEFAULT, emeraldTown, [glassX], japanCherry, laguna, ruby, wine)
wine
[input] Is this project deployed as an EAR (with EJB components) or a WAR (with no EJB support)? [war] (ear, [war])
war
[input] Enter the base package name for your Java classes [com.mydomain.seam_weblogic] [com.mydomain.seam_weblogic]
seamweblogic
[input] Enter the Java package name for your session beans [seamweblogic.action] [seamweblogic.action]
[input] Enter the Java package name for your entity beans [seamweblogic.model] [seamweblogic.model]
[input] Enter the Java package name for your test cases [seamweblogic.test] [seamweblogic.test]
[input] What kind of database are you using? [hsql] ([hsql], mysql, derby, oracle, postgres, mssql, db2, sybase, enterprisedb, h2)
mysql
[input] Enter the filesystem path to the JDBC driver jar [] []
/home/mmaia/Oracle/Middleware_wl10.3.3/wlserver_10.3/server/lib/mysql-connector-java-commercial-5.0.3-bin.jar
[input] skipping input as property driver.license.jar.new has already been set.
[input] Enter the Hibernate dialect for your database [org.hibernate.dialect.MySQLDialect] [org.hibernate.dialect.MySQLDialect]
[input] Enter the JDBC driver class for your database [com.mysql.jdbc.Driver] [com.mysql.jdbc.Driver]
[input] Enter the JDBC DataSource class for your database [com.mysql.jdbc.jdbc2.optional.MysqlDataSource] [com.mysql.jdbc.jdbc2.optional.MysqlDataSource]
[input] Enter the JDBC URL for your database [jdbc:mysql:///test] [jdbc:mysql:///test]
seamweblogic
[input] Enter the database username [sa] [sa]
seamweblogic
[input] Enter the database password [] []
seamweblogic
[input] skipping input as property hibernate.default_schema.entered has already been set.
[input] Enter the database catalog name (Enter '-' to clear previous value) [] []
seamweblogic
[input] Are you working with tables that already exist in the database? [n] (y, [n])
n
[input] Do you want to recreate the database tables and execute import.sql each time you deploy? [n] (y, [n])
y
[propertyfile] Creating new property file: /home/mmaia/tools/jboss-seam-2.2.0.GA/seam-gen/build.properties
[echo] Installing JDBC driver jar to JBoss AS
[copy] Copying 1 file to /home/mmaia/tools/jboss-5.1.0.GA/server/seamWeblogic/lib
init:
init-properties:
[echo] /home/mmaia/tools/jboss-5.1.0.GA
validate-workspace:
validate-project:
settings:
[echo] JBoss AS home: /home/mmaia/tools/jboss-5.1.0.GA
[echo] GlassFish home: C:/Program Files/glassfish-v2.1
[echo] Project name: seam_weblogic
[echo] Project location: /home/mmaia/workspaceGalileoJBossSeam/seam_weblogic
[echo] Project type: war
[echo] IceFaces: n
[echo] Action package: mmaia@mmaia-laptop:~/tools/jboss-seam-2.2.0.GA$ ./seam.sh setup
[echo] Model package: seamweblogic.model
[echo] Test package: seamweblogic.test
[echo] JDBC driver class: com.mysql.jdbc.Driver
[echo] JDBC DataSource class: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
[echo] Hibernate dialect: org.hibernate.dialect.MySQLDialect
[echo] JDBC URL: seamweblogic
[echo] Database username: seamweblogic
[echo] Database password: seamweblogic
[echo]
[echo] Type './seam create-project' to create the new project
BUILD SUCCESSFUL
O próximo passo é gerar o projeto de fato, para isso executar o comando:
./seam new-project
Agora vamos testar primeiro o projeto no jboss. Nesse momento vou começar a utilizar comandos ant navegando para a raiz do projeto criado, na verdade os comandos poderiam ser dados utilizando a chamada ./seam do diretório do seam onde estava, mas como o setup do projeto no seam pode mudar e ele só armazenda os dados do último, sugiro que se acostumem com os comandos ant sempre navegando para a raiz do projeto que o sem criou, é assim que vou continuar aqui.
Com o projeto gerado, navegar então para a raiz do projeto criado e digitar o comando para fazer o deploy expandido no jboss. Nesse momento certifique-se que o servidor e a base de dados que vc especificou no setup do seam acima existem no mysql e na sua instalação de jboss respectivamente digite então o comando no shell:
ant explode
Este comando irá fazer o deploy expandido em modo de desenvolvimento no servidor jboss especificado no setup. Para testar a aplicação inicialize a isntância do jboss e navegue no browser:
http://localhost:8080/seamweblogic
Se tudo for bem deve aparecer uma página do Seam com a mensagem: Welcome to Seam
Bom isso é tudo no que diz respeito à criação do projeto. No próximo post sobre esse assunto iremos migrar o .war do jboss para rodar no weblogic.
[]s