FJ-21 exercícios opcionais 9.9 nº1

9 respostas
M

Estou com dúvida de como fazer esse exercício, já criei a lógica de exclusão, mais esta dando erro, será que alguém pode me dar uma ajuda?

9 Respostas

H

E qual o erro?

M

Tem essa página aqui que é a lista de contatos:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt” %>

Lista de Contatos
<c:import url="cabecalho.jsp" />
<table border="1px">
	<tr>
		<th>Nome</th>
		<th>E-mail</th>
		<th>Endereço</th>
		<th>Data de Nascimento</th>
		<th colspan="2" bgcolor="grey"></th>
	</tr>
	
	<!-- percorre contatos montando as linhas da tabela-->

	<!-- Antes
	List<Contato> contatos = dao.getLista();
	for (Contato contato : contatos) { 
	 --> 
	
	<c:forEach items="${dao.lista }" var="contato" varStatus="id">
		<tr bgcolor="#${id.count % 2 == 0 ? 'aaee88':'ffffff'}">
			<td>${contato.nome}</td>
			<td>
				<c:choose>
					<c:when test="${not empty contato.email}">
						<a href="mailto:${contato.email}">${contato.email}</a>						
					</c:when>
					<c:otherwise>
						E-mail não informado.
					</c:otherwise>
				</c:choose>
			</td>
			<td>${contato.endereco}</td>
			<td><fmt:formatDate value="${contato.dataNascimento.time}" pattern="dd/MM/yyyy"/></td>
			<td><a href="fj21-agenda/altera-contato.jsp">Alterar</a></td>
			<td><a href="/RemoveContatoLogic?id=${contato.id}">Excluir</a></td>
		</tr>
	</c:forEach>		
</table>

<c:import url="rodape.jsp" />

E tem essa outra que é onde acontece a lógica:

package br.com.caelum.mvc.logica;

import javax.servlet.RequestDispatcher;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import br.com.caelum.agenda.dao.ContatoDAO;
import br.com.caelum.agenda.modelo.Contato;

public class RemoveContatoLogic implements Logica {

@Override
public void executa(HttpServletRequest request, HttpServletResponse response)
		throws Exception {

	Contato contato = new Contato();

	long id = Long.parseLong(request.getParameter("id"));

	contato.setId(id);

	ContatoDAO dao = new ContatoDAO();
	dao.exclui(contato);
	
	RequestDispatcher rd = request.getRequestDispatcher("/lista-contatos-elegante.jsp");
	rd.forward(request, response);
	System.out.println("Removendo contato...");
}

}

E por fim o erro:

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: An exception occurred processing JSP page /lista-contatos-elegante.jsp at line 16

13: 

14: 

15: 	

16: 	<jsp:useBean id=dao class=br.com.caelum.agenda.dao.ContatoDAO></jsp:useBean>

17:

18: 	<c:import url=cabecalho.jsp />

19:
Stacktrace:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:553)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

br.com.caelum.agenda.filtro.FiltroTempoDeExecucao.doFilter(FiltroTempoDeExecucao.java:26)

root cause
java.lang.RuntimeException: java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)

br.com.caelum.agenda.ConnectionFactory.getConnection(ConnectionFactory.java:19)

br.com.caelum.agenda.dao.ContatoDAO.(ContatoDAO.java:19)

org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspService(lista_002dcontatos_002delegante_jsp.java:91)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

br.com.caelum.agenda.filtro.FiltroTempoDeExecucao.doFilter(FiltroTempoDeExecucao.java:26)

root cause
java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)

com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)

com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)

com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)

com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)

com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1694)

com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244)

com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2412)

com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2445)

com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2230)

com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:813)

com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)

sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

java.lang.reflect.Constructor.newInstance(Unknown Source)

com.mysql.jdbc.Util.handleNewInstance(Util.java:411)

com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)

com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)

java.sql.DriverManager.getConnection(Unknown Source)

java.sql.DriverManager.getConnection(Unknown Source)

br.com.caelum.agenda.ConnectionFactory.getConnection(ConnectionFactory.java:14)

br.com.caelum.agenda.dao.ContatoDAO.(ContatoDAO.java:19)

org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspService(lista_002dcontatos_002delegante_jsp.java:91)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

br.com.caelum.agenda.filtro.FiltroTempoDeExecucao.doFilter(FiltroTempoDeExecucao.java:26)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.12 logs.
H
  1. Quando você for postar seu código aqui no guj, coloque entre as tags
  2. Não tenha medo de ler a mensagem de erro. Olha o ela disse: Access denied for user ‘root’@‘localhost’ (using password: YES). Bem claro. [=
E

erro no acesso a base dados 'java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES) ’

M

É verdade, obrigado! Acredito que isso eu resolvi, mais continua dando erro, e página não abre…

type Exception report

message

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

exception

org.apache.jasper.JasperException: org.apache.jasper.el.JspELException: /lista-contatos-elegante.jsp(30,2) ${dao.lista} Error reading ‘lista’ on type br.com.caelum.agenda.dao.ContatoDAO

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:534)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

br.com.caelum.agenda.filtro.FiltroTempoDeExecucao.doFilter(FiltroTempoDeExecucao.java:26)

root cause
org.apache.jasper.el.JspELException: /lista-contatos-elegante.jsp(30,2) ${dao.lista} Error reading ‘lista’ on type br.com.caelum.agenda.dao.ContatoDAO

org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:112)

org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspx_meth_c_005fforEach_005f0(lista_002dcontatos_002delegante_jsp.java:172)

org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspService(lista_002dcontatos_002delegante_jsp.java:112)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

br.com.caelum.agenda.filtro.FiltroTempoDeExecucao.doFilter(FiltroTempoDeExecucao.java:26)

root cause
java.lang.NullPointerException

java.util.Calendar.setTime(Unknown Source)

br.com.caelum.agenda.dao.ContatoDAO.getLista(ContatoDAO.java:60)

sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

java.lang.reflect.Method.invoke(Unknown Source)

javax.el.BeanELResolver.getValue(BeanELResolver.java:87)

javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)

org.apache.el.parser.AstValue.getValue(AstValue.java:169)

org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)

org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:106)

org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspx_meth_c_005fforEach_005f0(lista_002dcontatos_002delegante_jsp.java:172)

org.apache.jsp.lista_002dcontatos_002delegante_jsp._jspService(lista_002dcontatos_002delegante_jsp.java:112)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

br.com.caelum.agenda.filtro.FiltroTempoDeExecucao.doFilter(FiltroTempoDeExecucao.java:26)
M

Alguém pode me dar uma ajuda nessa questão, por favor?

L

O erro é de nullpointer.

java.lang.NullPointerException

Debuga aí no seu dao para ver como está chegando.

M

Essa parte foi resolvida, mais ainda não consegui excluir um contato da minha tabela. Da essa mensagem:

HTTP Status 404 -

type Status report

message

description The requested resource () is not available.

E

Não sei se você resolveu o problema mas pelo que vi esta na url que você esta passando:

Excluir

eu fiz dessa forma e deu certo…

Excluir
Criado 24 de outubro de 2012
Ultima resposta 4 de set. de 2013
Respostas 9
Participantes 5