Info Computação
Blog voltado para área de computação. Dicas, artigos, tutorias, notícias.

Criando uma aplicação no JBoss Seam

Posted In: , . By Thiago Fonseca

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 Seam

Para 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






 

Recentemente fui utilizar o bom linux e tive problema com a inicialização do virtualbox. Para resolver esse problema que aparentemente apareceu como um problema de compatibilidade com o kernel, simplesmente resolvi fazendo:

Solução:
executar o comando => sudo /etc/init.d/vboxdrv setup

* Stopping VirtualBox kernel module * done.
* Recompiling VirtualBox kernel module * done.
* Starting VirtualBox kernel module * done.

Pronto, agora minha máquina virtual executa normalmente.

 

Atualizar dados com Zeos + Oracle, Delphi

Posted In: . By Thiago Fonseca

Após várias tentativas, integrar Oracle + Delphi + Zeos aparentemente ficou fácil!
Depois de algum tempo tentando integrar o Delphi 7 + Oracle, finalmente consegui!!
Estava com o seguinte problema: Conectava o Zeos a uma aplicação com banco de dados Oracle XE (free), conseguia atualizar tabelas (ZTables) mas para aplicações com muito tráfego atualizar tabelas não seria uma boa escolha pois ela trariam todas as tuplas da tabela, seria um select * da vida.
Então resolvi utilizar o ZQuery onde no programa coloco um sql do tip ( select * from cliente where cod_cli = :cod_cli). No construtor do programa abro a query.OPEN e então consigo visualizar os dados pesquisado (cod_cli). O problema estava quando tentava inserir, atualizar, ou deletar os dados. Simplesmente não fazia nenhuma ação.

Solução:

  • No componente Zconnection:
  1. configurar a propriedade TransactionIsolationLevel para tiReadCommited, com isso usuários só enxergaram dados atualizados
  2. Verificar o AutoCommit = true
  • No form de cadastro de cliente:
  1. Inserir um componente TZUpdateSQL, e para cada ação (insert, modify, delete) inserir os dados. Quais dados ? Eu fui na tentativa e erro e peguei todos os campos da minha tabela e fiz o seguinte
update cliente
set
cli_cod = :cli_cod,
cli_nome= :cli_nome,
cli_cpf = :cli_cpf,
cli_logradouro = :cli_logradouro,
...
where cli_cod = :old_cli_cod

Depois para na propriedade PARAMS definir o tipo de todos, repeti para as outras ações:
  • Insert:
insert into cliente(cli_cod,
cli_nome,
cli_cpf,
cli_logradouro, ...)
values( :cli_cod, cli_nome .....)

  • Delete
delete from cliente
where cli_cod =:cli_cod

Pronto! Na propriedade UpdateObject da query selecionei o componente TZUpdate e agora ORACLE RUN !!

Qualquer dúvida pode mandar email!

Até a próxima!

 

Perdi a senha do tomcat, e agora?

Posted In: . By Thiago Fonseca

Essa semana estava gerenciando o servidor apache tomcat, e como tenho uns 3 servidores em máquinas diferentes com senha diferente, acabei esquecendo a senha de um servidor tomcat.
E agora o que fazer ? Reinstalalar ? Não, não. A solução é bastante simples, vamos ver.

Solução:
Vá até o diretório padrão que está instalado o tomcat apache, dentro vai ter uma pasta chamada /conf. Ao entrar, existem alguns arquivos de configuração do servidor entre elas tem um arquivo chamado tomcat-users.xml. Pronto, é só abrí-lo e ver todos os usuários e senha cadastrados.

Simples!
Até a próxima.

 

Colocando o netbeans 6 no idioma inglês

Posted In: . By Thiago Fonseca

Bem, depois de algum tempo tentar procurar no site do netbeans, nas configurações da IDE não consegui localizar nenhum arquivo de configuração que pudesse alterar o idioma padrão do português para i inglês.
Depois de pesquisar em alguns forum, vi que o netbeans trabalha de acordo com o idioma local (Windows, linux) instalado no sistema operacional.

Solução

  1. Abrir o arquivo de configuração netbeans.conf localizado na pasta que o netbeans está instalado no subdiretório \etc. (ex : C:\Arquivos de programas\NetBeans 6.0.1\etc)
  2. Inserir no final da linha que começa com netbeans_default_options= a outra opção "-J-Duser.language=en -J-Duser.country=US". (ex: netbeans_default_options = "...... J-Dapple.laf.useScreenMenuBar=true -J-Duser.language=en -J-Duser.country=US"
  3. Reiniciar o netbeans.
  4. Pronto, o idioma vai estar por padrão inglês. Para voltar para o português é só tirar a opção acima adicionada.