INTRODUÇÃO
Nesse artigo vamos
demostrar como instalar o banco de dados Postgresql versão 9.2 e
configurar o servidor de aplicações JBOSS AS 7 para ter acesso a
esse banco de dados.
INSTALAÇÃO DO
POSTGRESQL NO UBUNTU
1 – Fazer o download
do postgresql nesse site:
Nesse site temos o
instalador gráfico que será usado nesse artigo, mas pode-se baixar
o PostgreSQL
nesse site também:
2 – Execute os
seguintes comandos:
// Dando permissão
para o arquivo poder ser executado.
chmod a+x
postgresql-9.2.3-1-linux.run
// Executando o arquivo
de instalação.
sudo
./postgresql-9.2.3-1-linux.run
Depois, será aberto um
instalador gráfico no estilo “wizard” (assistente) que guiará o
processo de instalação do postgresql. Veja nas figuras a seguir
esse processo.
CONFIGURAÇÃO DO
POSTGRESQL
Nessa seção, vamos
criar o banco de dados e algumas tabelas.
Para isso, vamos usar a
ferramenta “pgAdmin III”.
Nas figuras a seguir,
será ilustrado o processo de criação do banco de dados dentro do
Postgresql.
CRIAÇÃO DE TABELAS
Vamos criar tabelas
através de uma ferramenta gráfica para criação de script dentro
desse gerenciador gráfico. Para isso, veja nas figuras a seguir.
SCRIPTS SQL USADOS
NAS FIGURAS
DROP TABLE IF EXISTS
USUARIO;
CREATE TABLE IF NOT
EXISTS USUARIO (
id integer,
roleId integer,
nome varchar(80),
PRIMARY KEY (id)
);
DROP TABLE IF EXISTS
ROLE;
CREATE TABLE IF NOT
EXISTS ROLE (
id integer,
nome varchar(80),
PRIMARY KEY(id)
);
ALTER TABLE USUARIO ADD
FOREIGN KEY (roleId) REFERENCES ROLE(id);
INSERT INTO ROLE (id,
nome) values (1,'ADMIN');
INSERT INTO ROLE (id,
nome) values (2, 'CONVIDADO');
INSERT INTO USUARIO
(id, roleId, nome) values (1, 1, 'ADMINSTRADOR_SISTEMA');
INSERT INTO USUARIO
(id, roleId, nome) values (2, 2, 'CONVIDADO');
INSERT INTO USUARIO
(id, roleId, nome) values (3, 1, 'OUTRO_ADMIN');
Na figura a seguir,
será mostrado o uso do comando select para verificar tabelas
criadas.
CONFIGURAÇÃO NO JBOSS AS 7
Até agora configuramos
o banco de dados PostgreSQL, agora precisamos configurar o servidor
JBOSS AS 7 para usar esse banco de dados. Primeiramente, na
instalação do PostgreSQL, escolhermos instalar uma extensão
adicional que o driver JDBC do PostgreSQL. Esse driver está
localizado dentro do diretório “pgJDBC” dentro do diretório
home do PostgreSQL. Nessa instalação, o PostgreSQL ficou instalado
no diretório “/usr/local/PostgreSQL”. Com esse driver, vamos
criar um módulo dentro do JBoss AS 7 para que o driver fique
disponível para ser usado por todo o servidor.
Crie as pastas:
$JBOSS_HOME/modules/org/postgresql
$JBOSS_HOME/modules/org/postgresql/jdbc
$JBOSS_HOME/modules/org/postgresql/jdbc/main
Copie o driver
(postgresql-9.1.901.jdbc4.jar) para a pasta “main”.
Crie um arquivo chamado
“module.xml” dentro da pasta “main” e com o seguinte conteúdo.
<module xmlns="urn:jboss:module:1.1" name="org.postgresql.jdbc">
<resources>
<resource-root path="postgresql-9.1-901.jdbc4.jar"/>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Esse arquivo configura
o módulo do JBoss AS 7, nesse arquivo podemos configurar as
dependências entre módulos, exclusões de pacotes, etc. Note que
informamos o jar do driver nesse arquivo e definimos o nome do módulo
(org.postgresql.jdbc) que será usado dentro do arquivo
standalone.xml para configurar o servidor JBoss AS 7 para usar
esse módulo. E também, o nome definido no módulo deve seguir o
caminho do diretório do módulo. Isto é, “org.postgresql.jdbc”
indica módulo dentro da pasta “main” (padrão e obrigatório e
não dá para alterar o nome dessa pasta, senão, o módulo não é
carregado) que por sua vez está dentro da pasta “jdbc” que está
dentro da pasta “postgresql” e que está dentro da pasta “org”.
Ou seja, a nomenclatura dos módulos do JBoss AS 7 é análoga a nomenclatura de pacotes na linguagem Java, sempre associando os nomes
entre pontos (“.”) com diretórios.
Depois disso,
precisamos incluir essa informação “services/java.sql.Driver” no jar,
para isso, execute o seguinte comando.
jar -uf
postgresql-9.1-901.jdbc4.jar META-INF/services/java.sql.Driver
Pronto, o novo módulo
do driver JDBC do PostgreSQL foi criado dentro do JBoss AS 7, só
executar o servidor, se existir erros, o log do servidor reportará.
Altere o arquivo standalone.xml para criar drivers e datasources apartir do driver JDBC do postgresql instalado dentro do JBoss AS 7 na forma de módulos. Altere as seguintes linhas:
<subsystem xmlns="urn:jboss:domain:datasources:1.1">
<datasources>
<datasource jndi-name="java:jboss/postgresDS" pool-name="postgresDS" jta="false" enabled="true" use-java-context="true" use-ccm="false">
<connection-url>jdbc:postgresql://127.0.0.1:5432/mybd</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgresql-driver</driver>
<pool>
<min-pool-size>2</min-pool-size>
<max-pool-size>50</max-pool-size>
</pool>
<security>
<user-name>postgres</user-name>
<password>postgresql</password>
</security>
<validation>
<check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
<background-validation-millis></background-validation-millis>
</validation>
<statement>
<prepared-statement-cache-size>0</prepared-statement-cache-size>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<drivers>
<driver name="postgresql-driver" module="org.postgresql.jdbc">
<xa-datasource-class>org.postgresql.xa.PGXADatasource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
Depois de iniciar o
servidor JBOSS AS 7, entre no console do servidor:
Se não tiver usuário
cadastrado no JBoss AS 7, terá que rodar o script “addUser” que
está dentro da pasta $JBOSS_HOME/bin. Nesse script adicionamos os
usuários com suas respectivas senhas para poder acessar o console do
servidor JBoss.
Nas figuras a seguir,
serão mostrados os passos para entrar no console, acessar
datasources e testá-los.
CONCLUSÃO
Nesse artigo mostramos
como configurar o acesso do JBoss AS 7 ao banco de dados PostgreSQL.
Com isso, podemos usar esse datasource para configurações de
segurança, uso em arquivos implantados como EAR, WAR, etc.
REFERÊNCIAS