Erro ao acessar banco de dados no jstl

Construi umas classes para acessar um bd mysql, em um projeto console funciona perfeitamente, exibe os dados e tudo mais. Ao colocar essas classes em um projeto web estou tentando exibir os dados do banco de dados e está retornando erro, e o erro não é no useBean, e sim no forEach, alguém poderia me ajudar?

minha classe que retorna os dados:

package br.com.caelum.pjWeb;

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

import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.ResultSet;

public class ContatoDAO {

	private Connection connection;
		
	public ContatoDAO() throws SQLException
	{
		this.connection = ConnectionFactory.getConnection();
	}
	
        [b]//esse método deveria retornar os dados[/b]	
	public java.util.List<Contato> getListaNome() throws SQLException 
	{
		String strContatos = "SELECT * FROM CONTATOS";
		PreparedStatement stmt = (PreparedStatement) this.connection.prepareStatement(strContatos);
		ResultSet rs = (ResultSet) stmt.executeQuery();
		
		java.util.List<Contato> list = new java.util.ArrayList<Contato>();
		
		while ( rs.next() )
		{
			Contato contato = new Contato();
			contato.setNome(rs.getString("nome"));
			contato.setEndereco((rs.getString("endereco")));
			contato.setEmail(rs.getString("email"));
			
			list.add(contato);
		}
				
		return list;
	}	
	
}
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>

<html>
	<body>
		<jsp:useBean id="dao" class="br.com.caelum.pjWeb.ContatoDAO" />
	
		ola
	
		<c:forEach var="contato" items="${dao.listaNome}">
			<li>${contato.nome}</li>
		&lt;/c:forEach&gt;	


	
	&lt;/body&gt;

&lt;/html&gt;

Everton, copia e cola o erro e toda a stack trace