Galera estou precisando fazer uma conexao show aqui, atualmente uso uma classe para conexao, mais ta feio isso, quero algo mais moderno tipo uma conexao datasource, bom estou tentando fazer assim:
No meu projeto uso configuro o context.xml
<?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>
Minha classe conecta
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;
}
Minha 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);
}
}
Tenho o jar do oracle na lib do tomcat
Mais esta dando este erro ao executar o teste
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
O que esta faltando?
E a melhor maneira de fazer uma conexao?
Sera que esta faltando algum jar ou configurar algum arquivo de conf do tomcat?