quinta-feira, 6 de maio de 2010

Jboss - Mudando aplicação padrão

Saindo um pouco do assunto Seam-Gen, esat semana um amigo me ligou perguntado como poderia colocar a aplicação dele como padrão.
Ele precisava colocar /Aplicacao depois do dominio e não queria fazer isso.

http://www.xxxx.com.br/Pedido e queria que ficasse apenas http://www.xxxx.com.br

A solução que passei foi a seguinte:
1 - Remova a aplicação padrão do Jboss:
  ~/jboss/server/default/deploy/jboss-web.deployer/ROOT.war
2 - Na aplicação que deseja colocar como padrão faça o seguinte:
   - Edite  /WEB-INF/jboss-web.xml  da aplicação
   - Substitua:
     <context-root>/Pedido<context-root>   por  
     <context-root>/<context-root> 
      (Se não existir acrescente a linha)
    Como no exemplo abaixo: 
        <jboss-web>
        .
        .
              
<context-root>/context-root>    
       

        .
 
       </jboss-web>
3 - Reinicie o jboss

Pronto chamando http://www.xxxx.com.br  Executará Pedido como padrão !!!

sexta-feira, 16 de abril de 2010

Jboss SEAM - seam-gen - Gerando Páginas CRUD (Parte 5)

Com a aplicação criada chegou a hora de gerar as páginas em cima do banco de dados.
Não vou entrar em detalhes de diagrama de classes vou direto ao assunto, como exemplo criei uma estrutura simples com 3 tabelas:


Estas tabelas foram criadas no banco em que mencionei na configuração do seam-gen.


Dica: Para saber os comandos do seam digite com o parâmetro help:
$ ./seam help

Voltando ao nosso teste, agora iremos gerar as páginas automaticamente usaremos o parâmetro generate este parâmetro combina o generate-model (gera JPA entidade de classes)  e generate-ui (gera o CRUD das entidades existente).

Veja:

~/Java/jboss-seam$ ./seam generate
SEAM_HOME: /home/crleal/Java/jboss-seam
Using seam-gen sources from: /home/crleal/Java/jboss-seam/seam-gen
Buildfile: /home/crleal/Java/jboss-seam/seam-gen/build.xml

init:

init-properties:
     [echo] /home/crleal/Java/jboss-5.1.0.GA

validate-workspace:

validate-project:

init-generate:

generate-model:
     [echo] Reverse engineering database using JDBC driver /home/crleal/Java/libs/mysql-connector-java-5.1.11-bin.jar
     [echo] project=/home/crleal/workspace/AplicacaoTeste
     [echo] model=br.com.aplicacaoteste.model
[hibernate] Executing Hibernate Tool with a JDBC Configuration (for reverse engineering)
[hibernate] 1. task: hbm2java (Generates a set of .java files)
[hibernate] log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
[hibernate] log4j:WARN Please initialize the log4j system properly.
[javaformatter] Java formatting of 4 files completed. Skipped 0 file(s).

generate-ui:
     [echo] Building project 'AplicacaoTeste' to generate views and controllers

init:

groovy.compilemodel:

compilemodel:
    [javac] Compiling 4 source files to /home/crleal/workspace/AplicacaoTeste/exploded-archives/AplicacaoTeste.war/WEB-INF/classes

groovy.compileactions:

groovy.copyactions:

compileactions:

copyclasses:

compile:

war:
[hibernate] Executing Hibernate Tool with a JPA Configuration
[hibernate] 1. task: generic exportertemplate: view/list.xhtml.ftl
[hibernate] 2. task: generic exportertemplate: view/view.xhtml.ftl
[hibernate] 3. task: generic exportertemplate: view/view.page.xml.ftl
[hibernate] 4. task: generic exportertemplate: view/edit.xhtml.ftl
[hibernate] 5. task: generic exportertemplate: view/edit.page.xml.ftl
[hibernate] 6. task: generic exportertemplate: src/EntityList.java.ftl
[hibernate] 7. task: generic exportertemplate: view/list.page.xml.ftl
[hibernate] 8. task: generic exportertemplate: src/EntityHome.java.ftl
[hibernate] 9. task: generic exportertemplate: view/layout/menu.xhtml.ftl
[javaformatter] Java formatting of 7 files completed. Skipped 0 file(s).
     [echo] Type './seam restart' and go to http://localhost:8080/AplicacaoTeste

generate:

BUILD SUCCESSFUL
Total time: 6 seconds
~/Java/jboss-seam$

Pronto!!!!




Execute o comando abaixo para fazer o deploy e reinicia o Jboss automaticamente:


~/Java/jboss-seam$ ./seam restart



E agora entre no browse e teste digitando:
http://localhost:8080/AplicacaoTeste

Irá Aparecer mais um item de menu e a tela ficará assim:



Tela de Produtos



Página Produto View


Ainda terminarei de postar o restante.

quinta-feira, 15 de abril de 2010

Jboss SEAM - seam-gen - Personalizando (Parte 4)

Antes de entrarmos na geração de telas automáticas vai aqui algumas dicas de  onde estão algumas das pasta onde poderemos alterar mensagens (pode até traduzi-las), icones e botões. Apenas mostrarei onde, ficando a cargo e necessidade de quem for usar.


- A pasta ~/jboss-seam/seam-gen/view
home.xhtml
conversation.xhtml
list.xhtml
login.xhtml
edit.xhtml
error.xhtml
query.xhtml
edit.xhtml.ftl
view.xhtml.ftl
list.xhtml.ftl

- A pasta ~/jboss-seam/seam-gen/view/layout
menu.xhtml
menu.xhtml.ftl

- A pasta ~/jboss-seam/seam-gen/view/img - Imagens usadas pelo seam-gen e serão copiadas para aplicação.
- A pasta ~/jboss-seam/seam-gen/view/stylesheet - css usadas pelo seam-gen e serão copiadas para aplicação.
- A pasta ~/jboss-seam/seam-gen/view/useradmin - telas de administração e controle de usuários.


Todas as pastas indicadas acima são usadas pelo seam-gen para gerar a aplicação e telas da aplicação.

Dica: se for gerar aplicações distintas (cor, banco de dados, etc..) tenha uma pasta do joss SEAM para cada aplicação por nela conterá informações de configuração para a sua aplicação.

Agora sim a próxima parte irá tratar da criação de telas CRUD conforme tabelas.

Jboss SEAM - seam-gen - Gerando Aplicação (Parte 3)

Depois de ter configurado iremos gerar uma aplicação conforme foi configurado.


~/Java/jboss-seam$ ./seam new-project  
SEAM_HOME: /home/crleal/Java/jboss-seam
Using seam-gen sources from: /home/crleal/Java/jboss-seam/seam-gen
Buildfile:
/home/crleal/Java/jboss-seam/seam-gen/build.xml

init:

init-properties:
     [echo] /home/crleal/Java/jboss-5.1.0.GA

validate-workspace:

validate-project:

icefaces-staging-copy:

initcopy:

initpoms:
     [echo] Setting up dependencies
     [copy] Copying 1 file to
/home/crleal/Java/jboss-seam/classes/poms
[artifact:install] [INFO] Installing
/home/crleal/Java/jboss-seam/classes/poms/root.pom to /home/crleal/.m2/repository/org/jboss/seam/root/2.2.1/root.pom
     [copy] Copying 1 file to
/home/crleal/Java/jboss-seam/classes/poms
[artifact:install] [INFO] Installing
/home/crleal/Java/jboss-seam/classes/poms/parent.pom to /home/crleal/.m2/repository/org/jboss/seam/parent/2.2.1/parent-2.2.1.pom
     [copy] Copying 1 file to
/home/crleal/Java/jboss-seam/classes/poms
     [copy] Copying 1 file to
/home/crleal/Java/jboss-seam/classes/poms
     [copy] Copying 1 file to
/home/crleal/Java/jboss-seam/classes/poms
     [copy] Copying 1 file to
/home/crleal/Java/jboss-seam/classes/poms
     [copy] Copying 1 file to
/home/crleal/Java/jboss-seam/classes/poms
     [copy] Copying 1 file to
/home/crleal/Java/jboss-seam/classes/poms     [copy] Copying 1 file to /home/crleal/Java/jboss-seam/classes/poms

copyseam:

copyseamdependencies:

copyjbossembedded:

copy-icefaces-home:

copy-icefaces-maven:

copy-lib:
     [echo] Copying Seam and dependencies to the /home/crleal/workspace/AplicacaoTeste/lib directory...
     [copy] Copying 150 files to /home/clementinoleal/workspace/
AplicacaoTeste/lib
     [copy] Copied 5 empty directories to 2 empty directories under /home/crleal/workspace/
AplicacaoTeste/lib
     [echo] Copying JBoss Embedded configuration to the /home/crleal/workspace/
AplicacaoTeste/bootstrap directory...
     [copy] Copying 30 files to /home/crleal/workspace/
AplicacaoTeste/bootstrap

file-copy-war:
     [echo] Copying build scripts for WAR deployment to the /home/crleal/workspace/
AplicacaoTeste directory...
     [copy] Copying 2 files to
/home/crleal/workspace/AplicacaoTeste
     [copy] Copying 1 file to /home/crleal/workspace/AplicacaoTeste
     [copy] Copying 1 file to /home/crleal/workspace/AplicacaoTeste
     [echo] Copying resources needed for WAR deployment to the /home/crleal/workspace/AplicacaoTeste/resources directory...
     [copy] Copying 5 files to
/home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/resources/WEB-INF

file-copy-ear:

setup-filters:

file-copy:
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste
     [copy] Copying 3 files to /home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 11 files to
/home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 4 files to
/home/crleal/workspace/AplicacaoTeste
     [copy] Copying 1 file to /home/crleal/workspace/AplicacaoTeste
     [copy] Copying 1 file to /home/crleal/workspace/AplicacaoTeste
     [copy] Copying 1 file to /home/crleal/workspace/AplicacaoTeste
     [copy] Copying 1 file to /home/crleal/workspace/AplicacaoTeste
     [copy] Copying 1 file to /home/crleal/workspace/AplicacaoTeste/.settings
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste
     [copy] Copying 1 file to /home/crleal/workspace/AplicacaoTeste
    [mkdir] Created dir: /home/crleal/workspace/AplicacaoTeste/nbproject
     [copy] Copying 3 files to
/home/crleal/workspace/AplicacaoTeste/nbproject
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/resources
     [copy] Copying 13 files to
/home/crleal/workspace/AplicacaoTeste/view
     [copy] Copying 16 files to
/home/crleal/workspace/AplicacaoTeste/view
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/src/hot/br/com/aplicacaoteste/action
     [copy] Copying 3 files to
/home/crleal/workspace/AplicacaoTeste
     [copy] Copying 1 file to /home/crleal/workspace/AplicacaoTeste
    [mkdir] Created dir: /home/crleal/workspace/AplicacaoTeste/src/main/br/com/aplicacaoteste/model
    [mkdir] Created dir:
/home/crleal/workspace/AplicacaoTeste/src/test/br/com/aplicacaoteste/test
     [copy] Copying 1 file to
/home/crleal/workspace/AplicacaoTeste/src/test

create-project:
     [echo] A new Seam project named 'BonusTeste' was created in the /home/crleal/workspace directory
     [echo] Type './seam explode' and go to http://localhost:8080/AplicacaoTeste
     [echo] Eclipse Users: Import the project using File > Import... > Existing Projects into Workspace, set the root directory to /home/crleal/workspace, then select the project named BonusTeste
     [echo] NetBeans Users: Open the project using File > Open project... and select the project folder /home/crleal/workspace/AplicacaoTeste
     [echo] IDEA Users: Open the project using File > Open project... and select the file
/home/crleal/workspace/AplicacaoTeste/AplicacaoTeste.ipr

new-project:

BUILD SUCCESSFUL
Total time: 2 seconds
~/Java/jboss-seam$


Pronto a aplicação foi gerada!!!

Para executar  a aplicação o jboss tem que estar rodando.


Execute o comando abaixo para fazer o deploy e reinicia o Jboss automaticamente:


~/Java/jboss-seam$ ./seam restart



E agora entre no browse e teste digitando:
http://localhost:8080/AplicacaoTeste


A tela ficará assim:





 Apertando o login teremos:





 Na próxima parte mostrarei como criar as telas CRUD conforme as tabelas do banco.

quarta-feira, 14 de abril de 2010

Jboss SEAM - seam-gen - Configurando (Parte 2)

Configurando seam-gen:
  • Descompactar numa pasta o jboss-seam;
  • Jboss Instalado;
  • Verifique a instalação Java jdk e a variável de ambiente JAVA_HOME.
  • Entre na pasta e siga os passos abaixo:
~/Java/jboss-seam$ ./seam setup
SEAM_HOME: ~/Java/jboss-seam
Using seam-gen sources from: ~/Java/jboss-seam/seam-gen
Buildfile: ~/Java/jboss-seam/seam-gen/build.xml

init:

setup:
[echo] Welcome to seam-gen :-)
[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/crleal/workspace] [/home/crleal/workspace]

[input] Enter your JBoss AS home directory [] []
/home/crleal/Java/jboss-5.1.0.GA

[input] Enter your JBoss AS domain [default] [default]

[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 [] []
AplicacaoTeste
[echo] Accepted project name as: AplicacaoTeste
[input] Do you want to use ICEfaces instead of RichFaces? [n] (y, [n])

[input] skipping input as property icefaces.home.new has already been set.
[input] Select a RichFaces skin [emeraldTown] (blueSky, classic, darkX, deepMarine, DEFAULT, [emeraldTown], glassX, japanCherry, laguna, ruby, wine)

[input] Is this project deployed as an EAR (with EJB components) or a WAR (with no EJB support)? [war] (ear, [war])

[input] Enter the base package name for your Java classes [com.mydomain.AplicacaoTeste] []
br.com.aplicacaoteste
[input] Enter the Java package name for your session beans [br.com.aplicacaoteste.action] [br.com.aplicacaoteste.action]

[input] Enter the Java package name for your entity beans [br.com.aplicacaoteste.model] [br.com.aplicacaoteste.model]

[input] Enter the Java package name for your test cases [br.com.aplicacaoteste.test] [br.com.aplicacaoteste.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/crleal/Java/libs/mysql-connector-java-5.1.11-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\://192.168.0.86\:3306/banco

[input] Enter the database username [] []
admin
[input] Enter the database password [] []
senha
[input] skipping input as property hibernate.default_schema.entered has already been set.
[input] Enter the database catalog name (Enter '-' to clear previous value) [] []

[input] Are you working with tables that already exist in the database? [y] ([y], n)

[input] Do you want to recreate the database tables and execute import.sql each time you deploy? [n] (y, [n])

[propertyfile] Creating new property file: /home/crlea/Java/jboss-seam/seam-gen/build.properties
[echo] Installing JDBC driver jar to JBoss AS
[copy] Copying 1 file to /home/crleal/Java/jboss-5.1.0.GA/server/default/lib

init:

init-properties:
[echo] /home/crleal/Java/jboss-5.1.0.GA

validate-workspace:

validate-project:

settings:
[echo] JBoss AS home: /home/crleal/Java/jboss-5.1.0.GA
[echo] GlassFish home: C:/Program Files/glassfish-v2.1
[echo] Project name: BonusTeste
[echo] Project location: /home/crleal/workspace/AplicacaoTeste
[echo] Project type: war
[echo] IceFaces: n
[echo] Action package: br.com.aplicacaoteste.action
[echo] Model package: br.com.aplicacaoteste.model
[echo] Test package: br.com.aplicacaoteste.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: jdbc\:mysql\://192.168.0.86\:3306/banco
[echo] Database username: admin
[echo] Database password:
[echo]
[echo] Type './seam create-project' to create the new project

BUILD SUCCESSFUL
Total time: 1 minute 4 seconds


O arquivo onde são guardadas as configurações: seam-gen/build.properties

Jboss SEAM - seam-gen (Parte 1)

Este post servirá para futuras consultas de como se usa o Jboss SEAM.

Seam-gem: Configura e gera uma aplicação automática.

Para se usar o Seam-gen é necessário ter instalado na maquina o java JDK e ter baixado do site http://seamframework.org/Download a última versão do Jboss seam.

Resumo dos comando seam-gen:

  • seam setup: Configura o seam-gen para o seu ambiente. Aqui são informados: caminho de instalação do JBoss AS, workspace do Eclipse, a conexão com o banco de dados, dentre outras informações de configuração. (Depois de feito o SETUP todos os projetos novos usarao a configuracao do setup)
  • seam new-project: Cria um novo projeto Seam baseado na configuração informada no seam setup.
  • seam -D[profile] deploy: Realiza o deploy do novo projeto com a configuração do perfil especificado, isto é, desenvolvimento, teste ou produção.
  • seam new-action: Cria uma página web simples, composta por uma página usando facelets e um componente no seu projeto.
  • seam new-form: Cria um formulário com uma ação.
  • seam generate-entities: Gera uma aplicação a partir de uma base de dados existente, usando engenharia reversa.
  • seam generate-ui: Gera uma aplicação com interface web a partir de entidades JPA/EJB3 existentes.
  • seam restart: Reinicia a aplicação no JBoss AS.
  • seam explode: faz o Deploy da aplicação