No post anterior, sobre este mesmo assunto, fizemos um exemplo de uso para configurações de “DataSources “(que são as conexões com bancos de dados gerenciadas pelo servidor de aplicações), usando a versão 6.1 do JBoss-AS com PostgreSQL.
Como muitos já sabem, a evolução do JBoss-AS da versã0 6.x para 7.x é bastante evidente e além das melhorias esperadas, foi necessário mudanças na forma como outros recursos funcionam e por consequência também na forma de configuração tanto dos Datasources como de outras funcionalidades. Mas neste post ficaremos concentrados no DataSource.
Apesar de muito simples e com apoio da interface visual do próprio servidor de aplicações, vamos seguir na linha a mesma linha anterior para apoio ao usuário e demonstrar essa configuração com base em uma aplicação Demoiselle. Desde a versão 2.3.0-Beta1 é possível utilizar o Demoiselle com a versão 7 do JBoss-AS. Mas sempre recomendamos que utilize a versão estável que no caso será a 2.3.0. Versões Beta e RC podem mudar e só devem ser usadas para casos de testes e estudos.
Pré-requistos:
Softwares:
Para este exemplo, foi usada a versão 7.1 do JBoss-AS, em conjunto com a IDE-Eclipse na versão 3.7 (Indigo) com os plugins M2Eclipse e JBoss-Tools correspondentes à esta versão. Recomendamos sempre que seja utililizado o projeto Demoiselle-Infra (http://demoiselle.sourceforge.net/infra/site/install.html) para criação do ambiente de desenvolvimento, pois as configurações já estarão prontas e não serão abordadas neste texto. O Eclipse será utilizado tanto para criação e configuração da aplicação como também para controlar (iniciar/parar) o JBoss-AS.
Também usaremos como exemplo o PostgreSQL como servidor de banco de dados, e neste caso foi usada a versão 9.1. Não abordaremos a configuração e instalação do banco de dados, essa informação pode ser vista neste link: http://wiki.postgresql.org.br/Parte1_Instalando_e_Configurando_o_PostgreSQL
O ambiente operacional usado foi o GNU-Linux Ubuntu, onde não foi necessário nenhuma outra configuração além das descritas na instalação do Demoiselle-Infra.
Configuração do Servidor:
Primeiro faremos a configuração no servidor de aplicações. Uma das tarefas é acessar a aplicação de administração do JBoss 7. Existe uma forma de acessar via terminal e linha de comando, mas neste exemplo usaremos a interface gráfica. Para acessar essa aplicação é preciso de um usuário administrativo, e por “default” o JBoss não traz nenhum pré-configurado por questões de segurança. Para criar esse usuário siga os passos abaixo:
- Abra um terminal de linha de comando (Crtl+Alt+T)
- Acesse a pasta bin da instalação do JBoss:
cd /opt/demoiselle/server/jboss-7.1/bin/
-Execute o comando:
./add-user.sh
- Serão apresentadas as perguntas abaixo:
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a): [pressione a tecla ENTER para selecionar a opção defalut ]
Enter the details of the new user to add.
Realm (ManagementRealm) : [pressione a tecla ENTER para selecionar a opção defalut ]
Username : admin
Password : [nova senha]
Re-enter Password : [repita nova senha]
The username ‘admin’ is easy to guess
Are you sure you want to add user ‘admin’ yes/no? yes
About to add user ‘admin’ for realm ‘ManagementRealm’
Is this correct yes/no? yes
Added user ‘admin’ to file ‘../../jboss-as-7.1.1.Final/standalone/configuration/mgmt-users.properties’
Added user ‘admin’ to file ‘../../jboss-as-7.1.1.Final/domain/configuration/mgmt-users.properties’
Com isso já temos a configuração de um novo usuário para administrar o servidor.
Será necessário também o driver de conexão (JDBC), que no nosso exemplo é o PostgreSQL: http://jdbc.postgresql.org/download.html
Se for usar outro servidor ou versão do PostgreSQl certifique-se que o driver é padrão JDBC4. Outro tipo não funcionará com o JBoss 7.1.
Coloque este arquivo (.jar) no diretório /opt/demoiselle/server/jboss-7.1/standalone/deployments/ (se estiver usando o Demoiselle-Infra)
Criação de uma aplicação para testes:
Faremos a criação de uma aplicação utilizando um arquétipo do Demoiselle, neste exemplo usamos o demoiselle-jsf-jpa na versão 2.3.0, lembrando novamente que somente a partir da versão 2.3.0 é que o projeto funcionará bem no JBoss-AS 7. Caso tenha alguma dúvida ou dificuldade para criar o projeto veja no primeiro módulo do tutorialhttp://www.frameworkdemoiselle.gov.br/documentacaodoprojeto/manuais-e-tutoriais/tutorial-da-versao-2-2-3-0/
Abra o Eclipse e execute a criação do projeto: File -> New -> Project -> Maven Project. Selecione o arquétipo conforme mostrado na figura abaixo:
Selecionando arquétipo demoiselle-jsf-jpa versão 2.3.0
Por enquanto, basta criar a aplicação.
Mais à frente faremos as alterações necessárias.
Configurando o Datasource no JBoss7.
Usando o Eclipse, abra a janela Servers onde deverá aparecer o ícone para o JBoss-7.1. Ative o servidor usando o botão “start“, conforme mostra a figura abaixo:
Ativando o servidor JBoss 7.1
Observe também a aba “console”, onde deverão aparecer algumas linhas informando o registro do driver.
INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-3) JBAS015012: Started FileSystemDeploymentService for directory /opt/demoiselle/server/jboss-7.1/standalone/deployments
INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.0.Final “Thunder” started in 3192ms – Started 135 of 206 services (70 services are passive or on-demand)
INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015876: Starting deployment of “postgresql-9.2-1001.jdbc4.jar”
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) JBAS010404: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.2)
INFO [org.jboss.as.server] (DeploymentScanner-threads – 2) JBAS018559: Deployed “postgresql-9.2-1001.jdbc4.jar”
Isso indica que o servidor está ativo e o driver pode ser configurado.
Abra então seu Navegador WEB, e acesse o endereço do servidor JBoss se for local será: http://localhost:8080
Em seguida clique no link “Administration Console“
Acessando console de Administração
Logo na sequência aparecerá a tela para autenticação, lembre-se do usuário e senha que foram criados nos pré-requisitos -> configuração do servidor.
Jboss7 autenticação
Assim, acessamos a parte administrativa do Servidor, nesta página (confirme mostrado na figura abaixo), clique na opção “Datasources” no menu esquerdo. Depois clique no perfil “Profile“, para habilitar as alterações.
Console de Administração do JBoss 7
Com as opções de alteração habilitadas, veremos que já existe um DataSource habilitado que é o famoso ExampleDS que usamos nos arquétipos do Demoiselle. Como já sabemos este é um conector para o HslqDB. Vamos então clicar no botão “Adicionar” ou “Add” caso sua console esteja em inglês.
Interface Administrativa habilitada para criação de um novo DataSource.
Na próxima tela apresentada definiremos o nome do DataSource (ex: PostgreSqlDS) e o JNDI Name (ex: java:jboss/datasources/PostgreSqlDS ). A informação mais importante aqui é o JNDI Name que usaremos depois na configuração da aplicação.
Clique então no botão “Next :>>“
Criando e nomeando o Datasource
A tela seguinte escolheremos o driver para o DataSource, devemos selecionar o que foi incluído para o PostgreSQL quando fizemos o download e colocamos na pasta /deployments, selecione clicando sobre o nome, e depois no botão “Next >>“
Escolhendo driver JDBC4
No próximo passo as informações dependerão do configuração que foi definida para o PostgreSQL, caso o servidor de banco de dados estiver em outra máquina é preciso certificar-se que há permissões de acesso para o usuário a ser usado. E o usuário deverá ter direitos de criação de tabela para nosso exemplo funcionar. No exemplo abaixo, criamos um usuário chamado Demoiselle e um banco de dados com o mesmo nome. Clique no botão “Done“.
Configurações da Conexão
Deverá então aparecer na tela o Datasource que acabamos de configurar, veja na coluna “enabled?” que está mostrando um símbolo que significa que não está habilitado, selecione (clicando sobre a linha do nome) o datasource criado que deverá mostrar o botão “Enable“, conforme destacado na figura abaixo, clique neste para habilitar o serviço.
Datasource criado e selecionado
Será apresentada uma tela de confirmação, basta clicar no botão “Confirm“.
Confirmação da ativação do serviço
Feito isso o ícone na coluna “Enabled?” deverá mudar indicando que o serviço está pronto para ser usado.
Veja que há mais opções de configuração, como por exemplo o Pool de conexões, mas neste exemplo não faremos nenhuma configuração além dessas. Caso se interesse pode trocar idéias na lista de usuários sobre essas características que são importantes para o desempenho da aplicação. Na aba “Connection” é possível executar um teste de conexão para validar as informações antes de configurar a aplicação.
Configurando e executando a aplicação de Exemplo.
Retornemos então ao Eclipse onde temos nossa aplicação de exemplo criada e o servidor já iniciado.
Abra para edição o arquivo: /src/main/resources/META-INF/persistence.xml e encontre a tag abaixo:
<non-jta-data-source>java:jboss/datasources/ExampleDS</non-jta-data-source>
Modifique-a com a informação que foi configurada nos passos anteriores:
<non-jta-data-source>java:jboss/datasources/PostgreSqlDS</non-jta-data-source>
Isso é o que basta para a aplicação usar a conexão recém criada.
Publique a aplicação no servidor JBoss-7.1: basta arrastar o projeto até o item na pasta servers.
No próprio console do Eclipse deverá ser mostrado as informações que identificam que o banco foi criado.
Para testar, basta abrir a aplicação e entrar na página de listagem. ( ex: http://localhost:8080/teste/bookmark_list.jsf)
Como nosso exemplo é usando o PostgreSQL, usamos a ferramenta PGAdmin (http://www.pgadmin.org/) que é bastante útil para verificar a base de dados. Veja na figura abaixo que mostra a tabela da aplicação de exemplo que foi criada.
Visualização do banco PostgreSQL com PGAdmin
Como podemos verificar, é bastante simples a criação de conexões de bancos de dados usando o JBoss-AS 7.
Em caso de dúvidas, procure auxilio na lista de usuários.
Autor: Emerson Sachio Saito