Criando um dataSource no jBoss
O jBoss é um servidor de aplicações JEE muito conhecido no mercado. Muitas vezes, porém, vejo posts nos fóruns (como o guj e o javafree) com dúvidas a respeito de como criar e chamar dataSources dentro desse servidor de aplicações.
Para o nosso how-to, vamos utilizar o postgreSQL, mas poderia ser outro como o MySQL, Oracle, entre outros. A primeira coisa é o conector JDBC. O conector tem que estar disponível para o jBoss antes de levantar a o dataSource. Nesse caso, não adianta colocar a jar no lib do seu deploy war (note bem war, ear é um pouco diferente), pois ele vai tentar disponibilizar o dataSource antes. Até porque o dataSource é disponibilizado para o JNDI e não como exclusividade da sua aplicação (aqui vai um outro senão, é possível colocar restrições de segurança para utilização desse dataSource, mas não vamos abordar isso nesse artigo).
Sem mais delongas, se você levantou o jBoss pelo run padrão, você provavelmente estará utilizando o diretório default do jBoss. Por isso, sugiro colocar a jar JDBC do postgreSQL (no nosso caso postgresql-8.1-407.jdbc3.jar) no diretório:
{DIRETORIO_DO_JBOSS}/server/default/lib/
Em seguida, coloque no diretório:
{DIRETORIO_DO_JBOSS}/server/default/deploy/
Um arquivo MEU_DATASOURCE-ds.xml (substitua MEU_DATASOURCE por algo conveniente). O conteúdo desse arquivo (seguindo uma configuração mínima) seria:
<? xml version="1.0" encoding="UTF-8" ?> <datasources> <local-tx-datasource> <jndi-name> jdbc/NOME_DO_DATASOURCE </ jndi-name> <connection-url> jdbc:postgresql://NOME_DO_SERVIDOR:5432/NOME_DO_BANCO?charSet=LATIN1 </ connection-url> <driver-class> org.postgresql.Driver </ driver-class> <user-name> USUARIO </ user-name> <password> SENHA </ password> <min-pool-size> 5 </ min-pool-size> <max-pool-size> 30 </ max-pool-size> <idle-timeout-minutes> 1 </ idle-timeout-minutes> <prepared-statement-cache-size> 32 </ prepared-statement-cache-size> </ local-tx-datasource> </ datasources>
E assim, o seu dataSource está pronto para ser acessado. Para quem, como eu, usa o Tomcat para desenvolvimento local, só mais uma modificação. Para chamar o dataSource:
protected static DataSource dataSource;
private Connection pegaConexao(){
Context ic = new InitialContext();
Connection con = null;
dataSource = (DataSource) ic.lookup(“java:jdbc/NOME_DO_DATASOURCE”);
con = dataSource.getConnection();
}
Bom uso!!!!



Ok otavio, para um data Source funciona legal! Mas como fazer para colocar a jndi de um atributo string por exemplo. Quero configurar minha aplicação para buscar o endereço principal via jndi.
por Exemplo:
java:comp/env/systemAddress
aonde configuraria isso?