Java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [RESOLVIDO]

12 respostas
E

Galera, estou tendo problemas para fazer uma conexão com o banco Oracle na minha aplicação Java, abaixo segue a minha conexão:

if(con == null){
			try{			
				Class.forName("oracle.jdbc.driver.OracleDriver");				
		//		con = DriverManager.getConnection("jdbc:oracle://10.1.1.5:1521/xe_gd_5","cpa","cpa");
				con = DriverManager.getConnection("jdbc:odbc:thin@10.1.1.5:1521:XE_GD_5","cpa","cpa");
					
			}catch(SQLException e){
				System.err.println ("Erro: "+e);
				con = null;
			}catch(ClassNotFoundException e){
				System.out.println("ClassNotFound..."); 
				e.printStackTrace();
		}
		}

Más quando executo ele cai no "catch" do Class.forName("oracle.jdbc.driver.OracleDriver"); me apresentando o seguinte erro: [color=red]java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver[/color]
Eu criei uma variável de ambiente no windows apontando para o Oracle: "C:\oracle\product\10.2.0\client_1\jdbc\lib\classes12.zip" e mesmo assim o erro continua ocorrendo,
alguém pode dar uma luz?

12 Respostas

C

Bom dia!

Você configurou o classpath?

E

Configurei

E

cttahara:
Bom dia!

Você configurou o classpath?

Esse é o conteúdo do meu classpath: .;%JAVA_HOME%

C

Você postou que criou uma var de ambiente, faz assim no seu classpath:

.;%JAVA_HOME%;%[SUA VAR DE AMBIENTE]%

ou

.;%JAVA_HOME%;C:\oracle\product\10.2.0\client_1\jdbc\lib\classes12.zip

E

Eu fiz isso, más continua dando o mesmo erro

C

Qual estrutura está utlizando?

Servidor WEB, ferramenta?

E

Estou trabalhando com JSF, estou utilizando o TomCat 6, por enquanto é só isso, eu fiz apenas para testar a conexão com o banco, ainda não estou recuperando dados dele.

C

Joga o arquivo classes12.zip na pasta lib do tomcat.

Lembrando: ao fazer isso você está setando que todas aplicações que rodam nesse tomcat vão utilizar essa classe para conexão.

Necessário dar shutdown e startup no tomcat.

E

Bom dia ephram, crie uma classe somente para esabelecer a conexão, pode ser feito algo do tipo…

public class ConnectionByOracle {
	
	
	static {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException exception) { /* Ignored */ }
	}
	
	public static Connection getConnection() throws Exceptions {
		Connection conn = null;
		
		try {
			conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@127.0.0.1:1521:XE",	
					"seu nome de usuario no banco", 								
					"sua senha");
		} catch (SQLException exception) {
			throw new Exceptions("Não foi encontrado o banco de dados!", exception);
		}
		
		return conn;
	}
}

Na sua classe DAO vc pode fazer algo do tipo…

private Connection _conn = null;
	
   _conn = ConnectionByOracle.getConnection();

Tente aí companheiro…

E

Pelo que estou vendo o seu problema é com o driver, dentro da lib tente clicar com o botão direito sobre o driver -> Build Path / Add Build Path

E

cttahara:
Joga o arquivo classes12.zip na pasta lib do tomcat.

Lembrando: ao fazer isso você está setando que todas aplicações que rodam nesse tomcat vão utilizar essa classe para conexão.

Necessário dar shutdown e startup no tomcat.

Resolveu o problema, vlw cara!

C

Blz!!!

Outra opção, para deixar a classe por aplicação, mover o classes12.zip para pasta WEB-INF/lib do seu projeto. Nesse caso, para cada projeto você necessita de uma cópia do arquivo.

Falow!!!

Criado 26 de abril de 2011
Ultima resposta 26 de abr. de 2011
Respostas 12
Participantes 3