java.lang.ClassNotFoundException: org.postgresql.Driver

14 respostas
G

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?

14 Respostas

L

Coloca o pom.xml para darmos uma olhada

G


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>
L

A dependência está correta… não parece ser problema de driver… Como você está realizando a conexão???

G

poderia er mais especifico na sua pergunta? hehe

L

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?

G
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);

}

}

}
L

A porta de conexão no postgresql é a 5432 e não 5435… verifica se resolve o seu problema

G

no meu caso é 5435 msm!

L

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?

G
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)
G

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

L

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.

L

@Gustavo_Henriques faça o que eu te disse no outro tópico que você criou. Pensei que esse fosse outra coisa! kkk

G

Fiz o que o lugusmao fez e deu certo!! obrigado a todos que me ajudaram!!!

Criado 28 de junho de 2016
Ultima resposta 2 de jul. de 2016
Respostas 14
Participantes 3