[RESOLVIDO]Erro exercicio da apostila FJ21

13 respostas
P

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 :

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)

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.

13 Respostas

A
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 :

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)

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.

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

N

tenta assim:

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

acho que funciona

P

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

Obrigado

P

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!

P

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 :\

P

Ajuda ai galera :\

E

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.,

A

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

Obrigado


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…

P

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

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

A

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

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

P

RESOLVIDO

N

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

Criado 18 de janeiro de 2013
Ultima resposta 22 de jan. de 2013
Respostas 13
Participantes 5