Erro ao acessar banco via JNDI...javax.naming.NoInitialContextException: Need to specify class

0 respostas
P

Olá,

ao rodar o main abaixo não consigo acessar o banco de dados.
O que estou fazendo de errado se alguém puder me ajudar agradeceria.

abs

public class TestaJNDI {

	/**
	 * @param args
	 * @throws NamingException 
	 * @throws SQLException 
	 */
	public static void main(String[] args) throws NamingException, SQLException {
		try{
			InitialContext initCtx = new InitialContext();
			DataSource ds = (DataSource) initCtx.lookup( "java:/comp/env/jdbc/jdbc/FinanceiroDB" );
			Connection con = ds.getConnection();	
			System.out.println("Conexão OK...");
		}catch(Exception e){
			System.out.print("Erro="+e);
		}
		// TODO Auto-generated method stub
		
	}

}
Erro=javax.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

META/context.xml

<?xml version="1.0" encoding="UTF-8"?>
   
    <Context antiJARLocking="true" path="">  
   <!--configuracao de conexao com banco de dados-->   
    <Resource name="jdbc/FinanceiroDB"   
             auth="Container"  
             type="javax.sql.DataSource"   
             username="root"  
             password="paulo"  
             driverClassName="com.mysql.jdbc.Driver"  
             url="jdbc:mysql://localhost:3306/finaceiro?autoReconnect=true"  
             maxActive="8"  
             maxIdle="4"/>  
   
      
 </Context>

web.xml

<resource-ref>
		<description>DataSource FinaceiroBD</description>
		<res-ref-name>jdbc/FinanceiroDB</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>
Criado 7 de fevereiro de 2011
Respostas 0
Participantes 1