O driver não funciona quando quero adicionar uma informação via web pro banco de dados, porém, no intellij, eu consigo adicionar informações no banco de dados tranquilamente já coloquei a dependencia do driver no pom.xml.
Apos muitas pesquisas vi que pode ser problema no classpath
… alguém pode me ajudar?
Coloca o pom.xml para darmos uma olhada
4.0.0
br.com.vendasonline
vendasdb
0.0.1-SNAPSHOT
war
<build> <finalName>vendasdb</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
<dependencies> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.4-1201-jdbc41</version> </dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency>
</dependencies>
A dependência está correta… não parece ser problema de driver… Como você está realizando a conexão???
poderia er mais especifico na sua pergunta? hehe
Você acrescentou o driver ao projeto. Agora, falta você criar/gerenciar uma conexão, algo como
Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/projeto, "root", "root");
onde você criou essa conexão? Como a aplicação sabe onde está o banco de dados?
public class ConnectionFactory {
public static Connection getConnection() {
try{
Class.forName(“org.postgresql.Driver”);//tenta achar a classe
System.out.println(“achou a classssseeeeeeeeee”);
} catch (ClassNotFoundException e) {
e.printStackTrace();//class not found exception
System.out.println("Erro ao carregar o Driver ");
}
try {
Connection conect = DriverManager.getConnection(“jdbc:postgresql://localhost:5435/vendasdb”,
“postgres”, “****”);
JOptionPane.showMessageDialog(null, “Conected with database!”);
return conect;
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(“Failed to connect to the database”);
}
}
}
A porta de conexão no postgresql é a 5432 e não 5435… verifica se resolve o seu problema
wowww…
nunca tinha visto tantos localhosts juntos… hehe
É o seguinte: o driver está listado corretamente no pom e a sua interface de conexão está correta… Qual é o erro que você identifica no console ao fazer o deploy da aplicação? Ele chega a subir no servidor de aplicação?
java.lang.ClassNotFoundException: org.postgresql.Driver
Erro ao carregar o Driver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1332)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at br.com.vendasonline.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:14)
at br.com.vendasonline.jdbc.ClientDAO.(ClientDAO.java:18)
at Controllers.UserController.doPost(UserController.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/vendasdb
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at br.com.vendasonline.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:21)
at br.com.vendasonline.jdbc.ClientDAO.(ClientDAO.java:18)
at Controllers.UserController.doPost(UserController.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
isso acontece quando coloca dados a partir da web, eai da esse erro
o erro é mt bizarro… eu n sei pq ta dando isso kkkk
Gustavo_Henriques
Por incrível que pareça, mas o seu problema pode ser de fato o classpath
O que acontece é que você realizou a instalação de 4 versões diferentes de postgresql na sua máquina. Provavelmente pode estar referenciando uma versão diferente da 9.4. Para verificar, acesse o painel de controle (tecla windows + i), Sistema e Segurança, Sistema, clica em Configurações avançadas do sistema. Clique em Variáveis de Ambiente. Na variável de sistema Path verifica qual postgresql está sendo referenciado. Eu recomendaria você alterar para C:\Program Files\PostgreSQL\9.4\bin
e fazer um teste com a sua aplicação.
@Gustavo_Henriques faça o que eu te disse no outro tópico que você criou. Pensei que esse fosse outra coisa! kkk
Fiz o que o lugusmao fez e deu certo!! obrigado a todos que me ajudaram!!!