Ajuda! com conexao DataSource

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.

Uma maneira é criar o Context passando como parâmetro a classe provedora de nomes, como eu uso websphere fica assim:

java.util.Properties myParms = new java.util.Properties();
myParms.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
Context myCtx = new javax.naming.InitialContext(myParms);

Não sei qual você pode usar no Tomcat, se é que ele provê este tipo de factory