Erro ao conectar Driver Oracle com JSP no Linux?

27 respostas
jsplinuxjava
M

Tenho uma pagina em JSP que faz uma conexão com banco ORACLE em ambiente LINUX, porem, creio que não esteja encontrando o driver.

String serverName = "z";
String portNumber = "z";
String sid = "z";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;

try {
     Class.forName("oracle.jdbc.OracleDriver");
     //Carrega o drive Nativo
     Connection con = DriverManager.getConnection(url, "z", "z");

     DatabaseMetaData dma = con.getMetaData ();
     System.out.println("\nConnected to " + dma.getURL());
     System.out.println("Driver       " + dma.getDriverName());
     System.out.println("Version      " + dma.getDriverVersion());
     System.out.println("");

     Statement stmt = con.createStatement ();

Substitui algumas informações por Z por motivos de segurança, porem no código fonte original esta correto. A duvida seria, como verificar ou instalar o JDBC Oracle no Linux?

27 Respostas

Dragoon

Qual é a mensagem de erros?

M

Seria esse o erro apresentado:

java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver

Dragoon

Você já adicionou o pacote do driver (.jar) do Oracle?

M

Bom baixei um ojdbc7.jar porem onde posso colocar ele? qual pasta? estou usando Ubuntu Server.

Dragoon

Pouco importa se é Linux ou Windows, o que importa se você adicionou o pacote .jar na sua aplicação, em qual você está usando NETBEANS?

M

Nao, esta rodando via TOMCAT7.

Dragoon

Você usa NetBeans para fazer o projeto? Qual é a situação do seu projeto?

L

Coloque o jar dentro da pasta lib no diretório onde instalou o tomcat.
Mas, antes de mais nada, porquê precisa fazer o select direto na JSP? Funciona, mas é a pior abordagem a se utilizar.
Qual o problema em trabalhar com camadas?

M

O projeto foi desenvolvido em 2009, no caso peguei para dar manutenção. O que ocorre é que ele é desenvolvido em .php porem, em algum trecho do código o desenvolvedor utilizou trechos em JSP. (Uma desordem imensa), o projeto foi desenvolvido com apenas um editor de texto normal e sendo executado no TOMCAT.

Dragoon

Agora ferrou é PHP ou JAVA? é muito complicado dar alguma solução plausível…

M

Pois bem Luis, a aplicação na época fora dividida dessa maneira, até pensamos aqui em refaze-la o que demandaria tempo. A aplicação esta muito ruim para dar manutenções.

L

Jesus!
Por isso que eu prefiro não pegar projetos para dar manutenção.
E, se eu fosse pegar algo assim, daria duas opções: migraria tudo para php ou simplesmente sugeriria refazer tudo com tecnologia mais recente.

M

Perdão, cometi um equivoco, é JAVA. olhe só um pequeno trecho do código.

M

Estamos avaliando a situação de traduzir para PHP, o projeto funciona muito bem como esta, porem, atrapalha muito em manutenções ou migrações como essa para outro servidor.

L

Esse trecho entre <% e %> até parece PHP mas é apenas o monstro scriptlet.
Colocou o driver na pasta lib do tomcat?

Dragoon

Acredito que para funcionar falta o .jar do Oracle elas estão dentro do Tomcat?

M

Dentro da pasta TOMCAT esta sim um arquivo .jar, porem teria alguma pasta correta para coloca-lo?

M

Dentro dessa pasta teria que colocar o arquivo?

L

Vamos por partes.
O mecanismo de funcionamento do tomcat fica encarregado de identificar a melhor solução para algo que o projeto requeira.
Por exemplo, se o projeto invoca um objeto do pacote xyz, o tomcat primeiro analisa se o pacote se encontra em algum jar dentro da sua pasta lib.
Caso positivo, ele fornece o que foi solicitado.
Caso contrário, ele vai procurar dentro da pasta do projeto, em WEB-INF/lib.
Se encontrar, ele disponibiliza o recurso. Senão, gera exception “ClassNotFound” ou afim.
Então, se você colocar o ojdbc7.jar dentro da pasta lib do tomcat e reiniciá-lo, deve funcionar.

L

Sim. Só que daí não vai funcionar.

M

Ok vamos la, temos a pasta do projeto chamada eletrotrafo. Reparem o caminho de onde ela vem.

Nas pastas anteriores não temos uma pasta chamada LIB a não ser essa antes do TOMCAT7

L

Esta é a pasta root do tomcat, é o local onde o tomcat descompacta os war. A lib não está ali.
Você precisa abrir o projeto ‘eletrotrafo’ e, dentro dele, deve existir a pasta WEB-INF. A pasta lib fica dentro dela.

T

Ok, dentro da pasta do projeto não tem a pasta mencionada, posso cria-la?
Tenho outra conta como a outra que abri o fórum é nova tem um limite para interação com o forum.

T

L

Na verdade, o ideal era que esta pasta fosse criada antes de compactar o projeto como war pois quando o tomcat fizer o deploy do war, esta estrutura já está pronta.
Não consigo dizer se irá funcionar assim. O que posso te dizer é que você terá que reiniciar o tomcat.

T

Agora ficou claro. olhe só a estrutura de pastas no servidor em Windows.

Repare que temos a pasta lib, com os ojdbc e várias dependências nela, vou tentar replicar ela em linux.

T

Bom dia Galera.
Problema resolvido!!!
Olha só como ficou a estrutura de pastas atual.

Muito obrigado…

Criado 20 de março de 2017
Ultima resposta 21 de mar. de 2017
Respostas 27
Participantes 4