Classpath no tomcat

8 respostas
R

Acredito que estou com um problema com jars no classpath do tomcat…
Coloquei os jars na lib da minha aplicação, nos logs do tomcat está aparecendo este erro:

java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at teste.Teste.<init>(Teste.java:18)
	at org.apache.jsp.listar_jsp._jspService(listar_jsp.java:50)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:833)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1285)
	at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
	at teste.Teste.setConsulta(Teste.java:41)
	at org.apache.jsp.listar_jsp._jspService(listar_jsp.java:119)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:833)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:639)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1285)
	at java.lang.Thread.run(Unknown Source)

O código que faz a consulta é este:

<%
try {
con.setConsulta();
ResultSet temp = con.getResultado();
while (temp.next()){
%>
<tr >
<td>

<%out.print(temp.getString("_file-name"));%>
</td>

<%}
}catch (Exception e) {
e.printStackTrace();
}
%>

E a classe java é:

package teste;
import java.sql.*;

public class Teste{
public ResultSet res = null;
public Connection con;
public Statement stm;
private String sit = "";
public Teste() {
  try {
   String driver ="com.progress.sql.jdbc.JdbcProgressDriver";
   String URL = "jdbc:jdbcprogress:T:192.168.0.3:15497:ems2mul4";
   String username = "xxxx";
   String password = "xxxx";

    // Abre a conexão
    Class.forName( driver );
    con = DriverManager.getConnection( URL,username, password );
    stm = con.createStatement();
    con.setAutoCommit(false);
    con.setTransactionIsolation(2);
    sit =  "Conectado ao: " + URL ; 
   }
   catch (SQLException ex) {
     ex.printStackTrace();
   }
   catch (ClassNotFoundException ex1){
   sit = "Erro: Driver nao encontrado\n" + ex1.getMessage();
   }
  catch (NoClassDefFoundError ex2){
   sit = "Erro: " + ex2.getMessage();
   }

}


public String getSituacao(){
return sit;
}


public void setConsulta() {
   try {
 

      res = stm.executeQuery("SELECT \"_file-name\" FROM \"PUB\".\"_file\"" );

   }
   catch (SQLException e){
     sit = "Erro: "+ e.getMessage();

   }
}



public ResultSet getResultado() {
return res;
}
}

Obrigado!!

8 Respostas

LeoMarola

Renato, existe 2 locais aonde pode ser reconhecido o seu driver: /common/lib e no lib do seu projeto. Se mesmo assim não funciona deve haver alguma configuração à parte…

Dá uma pesquisada no google :roll:

R

Então, já coloquei tanto no commons/lib quanto no lib da minha aplicação…
n sei o q pode ser… :confused:

R

eu fiz um programa em java (com void main(String args[]))…pra executar em linha de comando…
ele funciona e retorna os valores…

R

descobri onde ta o problema…mas num sei como resolver…
Está no diretório path:

\srs008\dados\Program Files\PROGRESS\bin\

Ele precisa de uma dll pra funcionar que ta na pasta acima.
JdbcProgress.dll

Agora num sei como colocar isso no tomcat…
:frowning:

R

alguem sabe??
n sei o q fazer…
preciso colocar uma pasta bin no path do tomcat… :cry:

kuchma

renatodervelan:
Ele precisa de uma dll pra funcionar que ta na pasta acima.
JdbcProgress.dll

Agora num sei como colocar isso no tomcat…

Pra comecar tente colocar junto com o JAR do driver JDBC. Se nao funcionar verifique na documentacao do driver onde deve ficar essa DLL.

Marcio Kuchma

R

já coloquei a dll junto com os outros jars e tb não deu certo.
na documentação, a dll deve ser apontada pelo path (diretorio onde está instalado o progress/bin (%dlc%/bin))
n sei o q fazer… :x

R

Depois de muito esforço, consegui fazer funcionar no tomcat.

Estou respondendo este tópico, pois sei que um dia alguém pode precisar…
bom…pra fazer progress funcionar com jsp é necessário que coloque as dlls (JdbcProgress.dll e procli92.dll) que é instalado junto com o progress(no meu cado fica em Program Files\PROGRESS\bin) na pasta C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\bin.

no diretório da sua aplicação em webapps\aplicacao\WEB-INF\lib eu coloquei todos os jars que tinha na pasta do java da instalação progress, mas acho que so a jdbc.jar e progress.jar deve funcionar…
bom é isso…não esquece de reiniciar o serviço e teste a aplicação…

até :wink:

Criado 17 de julho de 2006
Ultima resposta 21 de jul. de 2006
Respostas 8
Participantes 3