Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

CONECTIONPOOL NO SQLSERVER

Não estou conseguindo montar uma ConnectionPool usando o sqlserver, segue abaixo a classe que estou montando e o erro.Caso alguém possa me ajudar, agradeço imensamente. O que devo passar como parâmetro no comando contexto.lookup ?

package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

/**
 *
 * @author Fernando
 */

public class Conexao {

    public static Connection getConnection() throws NamingException, SQLException{
        InitialContext contexto = new InitialContext();
        DataSource pool = (DataSource) contexto.lookup("java:comp/env");
        Connection con = pool.getConnection();

        //String url = "jdbc:sqlserver://localhost:1433/databaseName=loja-virtual";
        //String user = "USUARIO";
        //String pass = "USUARIO";

            try {
                con =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=loja-virtual", "USUARIO", "USUARIO");
                System.out.println("Conectado: "+con);

            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }


        return con;
    }
}

ERRO:

run:
Exception in thread "main" 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
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:350)
    at javax.naming.InitialContext.lookup(InitialContext.java:417)
    at jdbc.Conexao.getConnection(Conexao.java:23)
    at jdbc.TestaConection.main(TestaConection.java:22)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
1 resposta
solução!

Oi Fernando

Pela exceção que você postou, o Jndi está reclamando que você não setou uma propriedade chamada java.naming.factory.initial dentro do arquivo de configuração do jndi.

Confira se dentro do seu projeto você tem um arquivo chamado jndi.properties dentro da pasta src e que esse arquivo contém uma linha da forma:

java.naming.factory.initial=<nome completo de uma classe>

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software