Galera estou tentando dar uma melhorada nas conexao ao banco de dados…
Atualmente as conexoes por aqui é feita a partir de uma classe jdbc conectando um banco de dados oracle…
Bom pretendo fazer uma conexao dataSource para melhorar o desempenho e ficar mais organizado.
Estou usando netbeans, tomcat 6, struts, conectando banco de dados oracle.
O que tento fazer aqui para teste é o seguinte:
context.xml da aplicacao
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/svi">
<Resource auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxActive="20"
maxIdle="10"
maxWait="-1"
name="jdbc/svi"
username="svi"
password="isdra2010"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@100.100.100.27:1521:isdradsv"/>
</Context>
Meu web.xml
<resource-ref>
<res-ref-name>
jdbc/bd_teste
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
Pegando conexao
public class Conexao {
public static Connection getConexao() throws Exception {
Connection con = null;
// Obtém a raiz da hierarquia de nomes
InitialContext contexto = new InitialContext();
// Obtém a origem dos dados
DataSource ds = (DataSource)contexto.lookup("java:comp/env/jdbc/svi");
// Obtém uma conexão
con = ds.getConnection();
// Retorna a conexão
return con;
}
}
Classe Teste
public static void main(String args[]) throws Exception{
try{
Connection con = Conexao.getConexao();
System.out.println("Conexao efetuada com sucesso " + con);
}catch(Exception e){
System.out.println("Erro ao conectar o banco" + e);
}
}
Esta dando um erro
Erro ao conectar o bancojavax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
Bom gostaria de saber se essa é a melhor maneira de efetuar conexoes?
Como corrigir este erro?
Tenho um jar do oracle na lib do tomcat.
preciso ter mais algum jar? preciso mudar algum arquivo de configuração do tomcat?
obrigado.