Pool de conexões

2 respostas
M

Pessoal estou tentando utilizar pool de conexões, mas estou levando um erro “javax.naming.NoInitialcontextException”.

Crie uma classe com um método main e o context.xml que fica na pasta META-INF do Tomcat. Abaixo segue o cógigo.

Esta classe de teste de pool de conexões apenas irá pegar a hora do Servidor de Banco de Dados e imprir.

Onde estou errando???

context.xm. da META-INF do TomCat:

<?xml version="1.0" encoding="ISO-8859-1"?>

WEB-INF/web.xml
META-INF/context.xml


Método main:

import javax.sql.DataSource;

import java.sql.<em>;

import javax.naming.</em>;

import java.util.*;
public class TesteJNDI

{

public static void main(String[] args)

{

try

{

Connection conexao = null;

DataSource pool;

pool = ServicoConexao.getPool();

conexao = pool.getConnection();

PreparedStatement sql;

sql = conexao.prepareStatement(select sysdate from dual);

ResultSet = sql.executeQuery();

String dataAtual = rs.getString(1);

System.out.println(A hora do Servidor e: +dataAtual);

}

catch (SQLException e)

{

System.err.println(AAAAAA);

}

catch (NamingException e)

{

System.err.println("BBBBBB: "+e.toString());
}

catch (MissingResourceException e)

{

System.err.println(CCCCC);

}

}

}

Classe sevicoConexao

import javax.naming.<em>;

import javax.sql.DataSource;

import java.util.ResourceBundle;

import java.util.MissingResourceException;

import java.util.</em>;
public class ServicoConexao

{

private static ServicoConexao servico = null;

private DataSource pool = null;

public static DataSource getPool() throws NamingException, MissingResourceException

{

if (servico == null)

{

servico = new ServicoConexao();

}

return servico.pool;

}
private ServicoConexao() throws NamingException, MissingResourceException

{

nomePool = jdbc/empregados;

InitialContext ic = new InitialContext();

Context ambiente = (Context) ic.lookup(“java:comp/env”);

pool = (DataSource) ambiente.lookup(nomePool);

}

}

Um grande abraço,

MPSV

2 Respostas

ASOBrasil

MPSV,

Tem coisa errada neste seu código, talvés possa ser isso!

Corrigir esta linha:

ResultSet rs = sql.executeQuery();

Esta variavel não estava declarada como String! A não ser que tinha sido declarada em outro lugar e não está aqui no código que vc passou

String nomePool = "jdbc/empregados";

Obs: sempre que for mandar um código, coloque dentro de um Code para este ficar mais legível.

ASOBrasil

Z

Voce ta tentando pegar uma conexao do pool do Tomcat em uma aplicacao stand-alone (public static void main)??

Criado 17 de maio de 2006
Ultima resposta 18 de mai. de 2006
Respostas 2
Participantes 3