Erro imprimir List pagina jsp

Olá pessoal, tenho uma jsp, uma classe Pessoa e TesteJSP, estou tentando imprimir na jsp um metodo que retorna uma lista de Pessoas da classe TesteJSP. Andei pesquisando aqui mesmo no Guj e dizem que o problema é que deve-se se usar a lib java.util.List e nao java.awt.List, mas eu estou usando a java.util.List.

Abaixo o erro, a jsp e as classes:

Erro

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 11 in the jsp file: /teste_jsp.jsp
Generated servlet error:
The type List is not generic; it cannot be parameterized with arguments <Pessoa>

An error occurred at line: 11 in the jsp file: /teste_jsp.jsp
Generated servlet error:
Syntax error, parameterized types are only available if source level is 5.0


	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause 

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 11 in the jsp file: /teste_jsp.jsp
Generated servlet error:
The type List is not generic; it cannot be parameterized with arguments <Pessoa>

An error occurred at line: 11 in the jsp file: /teste_jsp.jsp
Generated servlet error:
Syntax error, parameterized types are only available if source level is 5.0


	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

teste_jsp.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*,gravar.Pessoa, gravar.TesteJSP"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
	TesteJSP msg = new TesteJSP();
	List<Pessoa> lista = msg.ListaPessoas();	
	for (Pessoa pessoa : lista) {
                     out.println("Nome: " + pessoa.getNome());
	     out.println("CPF: " + pessoa.getCpf());
	     out.println("---------------");
	}
	
%>
</body>
</html>

TesteJSP.java

package gravar;

import java.util.ArrayList;
import java.util.List;

public class TesteJSP {

	public TesteJSP() {
	}

	public String MensagemUsuario() {
		return "Olá usuário!";
	}

	public List<Pessoa> ListaPessoas() {
		List<Pessoa> listaPessoas = new ArrayList<Pessoa>();

		Pessoa pessoa;

		pessoa = new Pessoa();
		pessoa.setNome("Pessoa1");
		pessoa.setCpf("N/S1");
		listaPessoas.add(pessoa);

		pessoa = new Pessoa();
		pessoa.setNome("Pessoa2");
		pessoa.setCpf("N/S");
		listaPessoas.add(pessoa);

		pessoa = new Pessoa();
		pessoa.setNome("Pessoa3");
		pessoa.setCpf("N/S2");
		listaPessoas.add(pessoa);

		pessoa = new Pessoa();
		pessoa.setNome("Pessoa4");
		pessoa.setCpf("N/S3");
		listaPessoas.add(pessoa);

		return listaPessoas;
	}

}

Pessoa.java

package gravar;
public class Pessoa {
	public String nome;
	public String cpf;

	public Pessoa() {
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

}

Valeu.

Bom dia amgarcia,

Não seria melhor usar as tags jstl para ler a lista?

Segue um link com algumas dicas a respeito de JSTL:

http://www.java2s.com/Tutorial/Java/0380__JSTL/Catalog0380__JSTL.htm

Att,

Guilherme Bernert

Estou apenas estudando Guilherme Bernert, vou chegar ainda na parte de tags jstl.
Você saberia me dizer onde estou errando nesse código?

Valeu.

Eu tive um problema parecido,
Tenta fazer assim:


public List ListaPessoas() {  // e mudei aqui
        List listaPessoas = new ArrayList();  // mudei aqui
  
        Pessoa pessoa;  
  
        pessoa = new Pessoa();  
        pessoa.setNome("Pessoa1");  
        pessoa.setCpf("N/S1");  
        listaPessoas.add(pessoa);  
  
        pessoa = new Pessoa();  
        pessoa.setNome("Pessoa2");  
        pessoa.setCpf("N/S");  
        listaPessoas.add(pessoa);  
  
        pessoa = new Pessoa();  
        pessoa.setNome("Pessoa3");  
        pessoa.setCpf("N/S2");  
        listaPessoas.add(pessoa);  
  
        pessoa = new Pessoa();  
        pessoa.setNome("Pessoa4");  
        pessoa.setCpf("N/S3");  
        listaPessoas.add(pessoa);  
  
        return listaPessoas;  
    }  

Na verdade, o que eu fiz, foi deixar o retorno, List, de mandei generica. e quando vc criar o objeto do tipo arrayList, também generico. desta maneira vc retornaria um List genérico.
talvez funcione.
Mas ainda nao entendi o porque desse problema

vlw

Oi amgarcia.

Eu testei o seu programa aqui e a lista está aparecendo normal.

Como você está chamando o seu teste_jsp.jsp???

Então pessoal, esse problema está ocorrendo apenas no Jboss, eu rodei no Tomcat e funcionou normal!

Valeu.

Já tentou reinstalar o JBoss?

Sim já, continua na mesma, você também usa o JBoss?
Eu uso aqui o jboss-4.0.5.GA, estava tudo funcionando ok, até eu começar a mexer com Scriptlet.

Falow.