Membro desde: 14/03/2009 15:28:50
Mensagens: 13
Online
Eu estou usando o postgres como base na minha apilcação, coloquei o driver do postgres no buildpath tudo certo, tanto que teste de conexão ta fazendo ok, mas qdo uso página jsp esta gerando uma exception: " No suitable driver found for jdbc:postgresql://localhost:5432" sendo que o driver esta ok, abaixo segue trecho da exception e da classe ConnectionFactory faço a conexão com a base, veja se consegue me ajudar por favor, obrigado.
Stacktrace:] with root cause
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:15)
at br.com.caelum.jdbc.dao.ContatoDAO.<init>(ContatoDAO.java:21)
at org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspService(lista_002dcontatos_002delegante_jsp.java:82)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Sou
package br.com.caelum.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
public Connection getConnection() {
System.out.println("Conectando ao banco");
try {
return DriverManager.getConnection(
"jdbc:postgresql://localhost:5432", "postgres", "root");
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
O driver do postgres esta na pasta Libraries colei ele na raiz do projeto e adicionei ao build path e deu certo, tanto que ele conecta ao banco de dados, fecha e abre conexão normalmete, só qdo é pela tela que da erro.
edu_fernandes como colocar o Class.forName(como ele ficaria, pois jah testei de alguma maniera e não deu certo) que vc sugeriu? E onde, na classe ConnctionFactory ou no DAO?
Então edu_fernandes até coloquei o Class.forName como vc sugeriu no Factory mas não deu certo, contiua a mesma exception, complicado ta tudo certo deve ser alguma bobeira que não estou conseguindo enxergar, vou bater mais cabeça aqui… Se vc ou alguém tiver mais alguma sugestão será bem vinda,
PS: Eu jah fiz essa mesma aplicação com banco mysql e funcionou, preciso testar uma aplicação simples com postgres p/ desenvolver em um sistema novo que será em postgres, mas antes de dar continuidade no sistema preciso ter o testado esse funcionamento.
Obrigado!
package br.com.caelum.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
public Connection getConnection() throws ClassNotFoundException {
System.out.println("Conectando ao banco");
try {
Class.forName("org.postgresql.Driver");
return DriverManager.getConnection(
"jdbc:postgresql://localhost:5432", "postgres", "root");
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
[quote=Deivis]Então edu_fernandes até coloquei o Class.forName como vc sugeriu no Factory mas não deu certo, contiua a mesma exception, complicado ta tudo certo deve ser alguma bobeira que não estou conseguindo enxergar, vou bater mais cabeça aqui… Se vc ou alguém tiver mais alguma sugestão será bem vinda,
PS: Eu jah fiz essa mesma aplicação com banco mysql e funcionou, preciso testar uma aplicação simples com postgres p/ desenvolver em um sistema novo que será em postgres, mas antes de dar continuidade no sistema preciso ter o testado esse funcionamento.
Obrigado!
Grande raphael.ricci, obrigado mesmo pela força ajudou bastante!!!
Além do ConnectioFactory que eu alterei usando a sua consexão com mySql como base e por isso tbém que deu certo, eu coloquei o jar do postgres na WebContent/WEB-INF/lib, dentro da pasta lib, pois o eu jah havia colocado o jar no Build Path por isso conectava com o banco mas não achava o servidor pque o driver não estava na pasta lib, após isso funcionou!!!
Segue como ficou a classe ConnectioFactory
public Connection getConnection() {
System.out.println("Conectando ao banco");
try {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection(
"jdbc:postgresql://localhost:5432", "postgres", "root");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
[quote=Deivis]Grande raphael.ricci, obrigado mesmo pela força ajudou bastante!!!
Além do ConnectioFactory que eu alterei usando a sua consexão com mySql como base e por isso tbém que deu certo, eu coloquei o jar do postgres na WebContent/WEB-INF/lib, dentro da pasta lib, pois o eu jah havia colocado o jar no Build Path por isso conectava com o banco mas não achava o servidor pque o driver não estava na pasta lib, após isso funcionou!!!
Segue como ficou a classe ConnectioFactory
[code]
public Connection getConnection() {
System.out.println(“Conectando ao banco”);
try {
Valew raphael.ricci, com essa sua dica ficou tudo mais claro, eu estava criando a pasta lib. :oops:
e não estava utilizando a a pasta lib que já existe dentro do projeto, no diretório WEB-INF,
pois este é o lugar correto de se colocar o driver do banco.
(Y)