[Resolvido] Erro estranho de conexão Oracle

Ola a todos!

Estou iniciando meus estudos com java usando Windows 8 e Eclipse
Não consigo conectar no oracle com o eclipse.

Retorna-me esse erro!

java.sql.SQLException: Exceção de E/S: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
.
.
.
.

Classe que uso

public Connection getConnection() throws ClassNotFoundException, SQLException{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    return DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.4:1521/KAL","????","????");
}

OBS:
O que acho estranho é que:
passando essa mesma classe no Netbeans, funciona! conecta sem problemas.

Já faz uns dois dias que estou batendo cabeça com isso

Alguém usa windows 8 com o eclipse?

substitua isso:

Class.forName("oracle.jdbc.driver.OracleDriver");

por isso:

Class.forName("oracle.jdbc.OracleDriver");

e vê o que é que dá.

e isso:

jdbc:oracle:thin:@192.168.1.4:1521/KAL

por isso:

jdbc:oracle:thin:@192.168.1.4:1521:KAL

novato25

obrigado por me ajudar!

mas fiz o que vc. indicou e nao resolveu!

como mencionei
instalei o Netbeans para testar a conexao e funcionou! mas quero fazer teste com o Eclipse tambem

o seu sistema é web? se for, qual servidor você utiliza?

Cara, java é java em qualquer IDE.

Da uma olhada se não tem conexões abertas no banco, vc pode ter se esquecido de fecha-la e esta tomando todo o seu pool de conexões.

freakazoid

se fosse problemas de conexões aberta, não acessaria com o Netbeans.

acho que é algum problema com o Eclipse e Windows 8 na parte de conexão.
não estou conseguindo resolver isso, ja pesquisei na net e fiz varias
alterações conforme cada publicação.

[quote=jgenario]freakazoid

se fosse problemas de conexões aberta, não acessaria com o Netbeans.

acho que é algum problema com o Eclipse e Windows 8 na parte de conexão.
não estou conseguindo resolver isso, ja pesquisei na net e fiz varias
alterações conforme cada publicação.[/quote]

Ok, vc pegou o projeto funcionando no NetBeans, exportou, depois importou no Eclipse.

Vc continua acessando normalmente pelo NetBeans? Se sim, poste aqui o strack trace completo.

Abs!

freakazoid

estou iniciando os estudo e comecei a fazer os teste no eclipse e me retornou o erro
ai fiz o mesmo processo no Netbeans e funcionou, entao me perguntei porque no eclipse nao funciona

Olha o codigo todo!

[code]import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConexaoUtil {

private static ConexaoUtil conexaoUtil;

public static ConexaoUtil getInstance(){
    if (conexaoUtil == null){
        conexaoUtil = new ConexaoUtil();
    }
    return conexaoUtil;
}

public Connection getConnection() throws ClassNotFoundException, SQLException{
    Class.forName("oracle.jdbc.OracleDriver");
    return DriverManager.getConnection("jdbc:oracle:thin:@192.100.1.4:1521:kal","????","????");
}

public static void main(String[] args) {
	try {
		System.out.println(getInstance().getConnection());
        System.out.println("conectado!");
	} catch (Exception e) {
		e.printStackTrace();
	}

}

}[/code]

Em outras palavras, copie e cole aqui todo o erro que aparece na sua console.

Outra coisa, no seu teste:

vc abre a conexão e deixa ela aberta. Existem algumas formas de aproveitar uma conexão aberta, porem não vem ao caso agora.
o que esta acontecendo é que cada vez que vc quer uma conexão cria uma nova e não fecha as que estão abertas.

Seu método para obter a conexão não esta errado, porem eu prefiro assim:


	public static Connection getConexao() {

		Connection conn = null;

		try {

			Class.forName("oracle.jdbc.OracleDriver");
			conn = DriverManager.getConnection(	"url", "usuario",	"senha");

			return conn;

		} catch (ClassNotFoundException erroClass) {
			System.out.println("Classe Driver JDBC não foi localizado, erro = "
					+ erroClass);
		} catch (SQLException erroSQL) {
			System.out.println("Erro de conexão com o Banco de dados, erro = "
					+ erroSQL);
		}

		return conn;
	}

java.sql.SQLException: Exceção de E/S: The Network Adapter could not establish the connection at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at ConexaoUtil.getConnection(ConexaoUtil.java:19) at ConexaoUtil.main(ConexaoUtil.java:24)

[quote=jgenario]java.sql.SQLException: Exceção de E/S: The Network Adapter could not establish the connection at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at ConexaoUtil.getConnection(ConexaoUtil.java:19) at ConexaoUtil.main(ConexaoUtil.java:24)[/quote]

No prompt do DOS digite TNSPING e confirme os dados do servidor e a porta.

Esse comando TNSPING vai consultar um serviço no Oracle lhe retornar se o banco esta acessível ou não.

jgenario, este teste mata 2 coelhos com uma majadada só, pois vamos confirmar que o banco esta ok e validamos os dados da sua string de conexão.

Abs!

Ola!
freakazoid

Desculpe a demora!

fiz o teste com o tnsping e responde ok.
acho que é problema com o eclipse - alguma coisa com o windows 8
pois fiz o teste com o mysql e deu o mesmo erro.

já qdo. faço o teste com o Netbeans tudo funciona!



Poh que chato!! Quando resolver poste aqui a solução.

Abs!

freakazoid!

Obrigado por me ajudar.

Meu ambiente de trabalho é o seguinte

Windows 8
Eclipse IDE Juno 64bits
Banco Oracle 11G e Mysql para teste

Solução

Iniciei um novo projeto informando a JRE 6 - conectou no Oracle e Mysql.

Se inicio um projeto usando a JRE 7 da erro: Exception The Network Adapter could not establish the connection.

Bom resolveu meu problema usando a JRE6.
não sei explicar porque.

se alguem quiser explicar o que tenho que fazer para usar a JRE 7 Agradeço.