[RESOLVIDO]Erro exercicio da apostila FJ21

Boa tarde pessoa, estou com uma dúvida que é simples mais já quebrei a cabeça e não consigo resolver.

Estou lendo a apostila FJ21, criei uma pagina jsp como explicado na apostila para listar os contato que está no BD. porem quando vou executar a pagina sempre me da o erro :

[code]The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
[/code]

e no meu console aparece outro erro :

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

acredito que seja o driver do Mysql, porem o mesmo já está adicionado no projeto, mais não na pasta WEB-INF / lib pois não consegui colocar o driver nela.
por dentro do eclipse as consultas no banco funciona normal, se alguem poder ajudar ficarei grato.

Vlw.

[quote=paulohms]Boa tarde pessoa, estou com uma dúvida que é simples mais já quebrei a cabeça e não consigo resolver.

Estou lendo a apostila FJ21, criei uma pagina jsp como explicado na apostila para listar os contato que está no BD. porem quando vou executar a pagina sempre me da o erro :

[code]The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
[/code]

e no meu console aparece outro erro :

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

acredito que seja o driver do Mysql, porem o mesmo já está adicionado no projeto, mais não na pasta WEB-INF / lib pois não consegui colocar o driver nela.
por dentro do eclipse as consultas no banco funciona normal, se alguem poder ajudar ficarei grato.

Vlw.[/quote]

Se você estiver usando TOMCAT coloque o driver do mysql na pasta lib do servidor …

tenta assim:

Botão direito no projeto dentro do Eclipse - Properties - Java Build Path - Libraries - Add Jar - Add External Jars

acho que funciona

Aleksandro, você pode me falar qual é o caminho para eu colocar ? é por dentro do eclipse ? estou usando o TOMCAT sim.

Obrigado

Não é necessário adicionar o .jar do mysql na WEB-INF, apenas deve-se adicioná-lo da pasta lib, no Build Path, para isso você deve clicar com o botão direito do mouse em cima do .jar e selecionar Configurar Build Path, e logo após add build path, com isso acho que seu problema será resolvido!

Não esquecendo que sua Classe de conexão com o BD, deve ser registrado o Driver do Mysql.

Abraço!

pprod11, vlw pelas informações mais continua o erro, ja tentei de tudo e o erro persiste, sómente na pagina, pois por dentro do eclipse funciona. Pode ser algo na minha ConnectionFactory ?

package br.com.caelum.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {

    
    private static Connection conexao = null;
    private String fonte = "fj21";

    public ConnectionFactory() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conexao = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + fonte, "root", "root");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println("Ocorreu um erro de class nao encontrada!!!");
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("Ocorreu um erro na conexao com o banco de dados!!!");
        }
    }
    public static Connection getConnection() {
        if (conexao == null) {
            new ConnectionFactory();
        }
        return conexao;
    }
}

não sei o que fazer :\

Ajuda ai galera :\

Olá Paulo, faz o seguinte teste:
Substitui a linha

conexao = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + fonte, "root", "root");  

por

conexao = DriverManager.getConnection("jdbc:mysql://localhost:3306/fj21", "root", "root");  

É estranho, mas quando fiz algo parecido, ou seja, passando os valores por variáveis, estava ocorrendo uns erros “malucos”, talvez seja esse o problema.

Abs.,

[quote=paulohms]Aleksandro, você pode me falar qual é o caminho para eu colocar ? é por dentro do eclipse ? estou usando o TOMCAT sim.

Obrigado[/quote]
Pasta onde esta instalado o tomcat >> lib

Adicione o jar do mysql dentro …faça um novo deploy …

detalhe verifica se ao gerar o deploy o arquivo .war esta apontado para a pasta webapps do tomcat … senão der certo desta forma poste o log para verificarmos …abs…

Aleksandro o erro continua…

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at br.com.caelum.jdbc.ConnectionFactory.<init>(ConnectionFactory.java:15)
	at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:28)
	at br.com.caelum.jdbc.dao.ContatoDAO.<init>(ContatoDAO.java:23)
	at org.apache.jsp.lista_002dcontatos_002dscriptlet_jsp._jspService(lista_002dcontatos_002dscriptlet_jsp.java:62)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)
Ocorreu um erro de class nao encontrada!!!
Jan 19, 2013 1:35:55 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
	at br.com.caelum.jdbc.dao.ContatoDAO.getLista(ContatoDAO.java:54)
	at org.apache.jsp.lista_002dcontatos_002dscriptlet_jsp._jspService(lista_002dcontatos_002dscriptlet_jsp.java:63)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

RESOLVIDO !

vlw pela ajuda galera, eu estava colocando o driver do mysql dentro de c:/arquivos de programas/apache…lib sendo que deveria colocar em d:/documentos/apache…lib

[quote=paulohms]RESOLVIDO !

vlw pela ajuda galera, eu estava colocando o driver do mysql dentro de c:/arquivos de programas/apache…lib sendo que deveria colocar em d:/documentos/apache…lib[/quote]

Bacana , coloque RESOLVIDO no campo “ASSUNTO” , bons estudos !!!

RESOLVIDO

Fala, Paulo.

Edita o seu primeiro post e coloca o início como [RESOLVIDO] para que vejamos em nossas mensagens que este tópico já está encerrado, por favor!

Abraços