Pessoal,
Estou iniciando meus estudos em JSP e estou seguindo a apostila web-fj21 da Caelum. Estou com problemas em um dos exercícios que utilizam JSP.
Instalei e configurei o Tomcat conforme explicado na apostila. Criei uma tabela CONTATO e criei a classe Contato (um JavaBean) contendo os atributos da tabela e métodos get e set para acesso aos mesmos. Também criei uma classe ContatoDAO, responsavel por estabelecer uma conexão com o banco MySQL e que possui rotinas para adicionar, alterar, remover e retornar a listagem de contatos do banco.
Quero listar os dados de contatos em uma página JSP. Criei o arquivo listascriptlet.jsp com o seguinte conteúdo:<html>
<%@ page import="br.com.cej.jdbc.dao.ContatoDAO"
%>
<ul>
<%
ContatoDAO dao = new ContatoDAO();
//Contato contato = new Contato();
%>
</ul>
</html>
No entanto, quando vou executá-lo no browser, recebo o erro abaixo:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /listascriptlet.jsp:8
5:
6: <ul>
7: <%
8: ContatoDAO dao = new ContatoDAO();
9: //Contato contato = new Contato();
10: %>
11: </ul>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.servlet.ServletException: com.mysql.jdbc.Driver
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.listascriptlet_jsp._jspService(listascriptlet_jsp.java:61)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.sql.SQLException: com.mysql.jdbc.Driver
br.com.cej.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:14)
br.com.cej.jdbc.dao.ContatoDAO.<init>(ContatoDAO.java:18)
org.apache.jsp.listascriptlet_jsp._jspService(listascriptlet_jsp.java:49)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
Se eu comentar a linha "ContatoDAO dao = new ContatoDAO();" funciona, mas não consegui descobrir o que há de errado nessa classe. Ela funciona perfeitamente em uma aplicação console.
Alguém pode me ajudar? O que estou fazendo de errado? Qualquer dica é bem vinda!
Obrigada!
Ps.: Desculpem pelo longo post, mas procurei explicar bem meu problema.