ClassNotFoundException - Apostila Caelum FJ21 [RESOLVIDO]

Boa tarde!

Estou criando uma aplicação seguindo os passos da apostila do curso FJ21 (Java para Desenvolvimento Web), da Caelum (em http://www.caelum.com.br/apostila-java-web/).

Estou utilizando

  • Eclipse Juno
  • PostgreSQL 9.2
  • JDBC (postgresql-9.2-1002.jdbc4.jar)
  • JDK (jdk1.7.0_13)
  • Windows 8

Até o momento, consegui executar todos os passos - quando executo uma classe comum pelo “Run As Java Application”, a conexão com o banco funciona, tanto que consegui inserir, alterar e excluir dados, bem como fazer consultas.

Agora que estou na parte dos Servlets (capítulo 5), informando os dados no browser, ocorre o seguinte erro ao tentar gravar:

java.lang.ClassNotFoundException: org.postgresql.Driver
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:12)
jdbc.dao.ContatoDAO.<init>(ContatoDAO.java:20)
servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:50)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

Já investi um bom tempo pesquisando, e me parece que o erro estaria relacionado ao CLASSPATH. Como não domino o assunto, nunca aprendi exatamente sobre as variáveis de ambiente, não consegui resolver o problema - nem tenho certeza se realmente tem a ver com o CLASSPATH.

Alguém teria alguma dica?

Grata,

2 Coisas:

  1. Qual o servidor que voce esta usando ? Tomcat ? JBoss ?

  2. Coloque o seu driver .jar na pasta WebContent / WEB-INF / lib, em projetos web basta por nessa pasta lib, nem precisa incluir no classpath.

Ah sim, esqueci de mencionar: estou utilizando Tomcat 7 (apache-tomcat-7.0.35).

Fiz isto de colocar o .jar na pasta WebContent/WEB-INF/lib, e num primeiro momento não funcionou.
Aí fui nas variáveis de ambiente e tirei todo o “lixo” que eu tinha incluído antes (na tentativa de resolver), e funcionou!

Às vezes a solução é mais simples do que parece…

Obrigada! :smiley: