Problemas Scriptlets JBoss 4.0.5GA

2 respostas
A

Olá pessoal, estou estudando J2EE, comecando por Scriptlets(para conhecimento), na página teste_jsp.jsp, quando eu tento escrever o metodo ListaPessoas() da classe TesteJSP ocorre um erro, mais esse erro ocorre apenas no JBoss, no Tomcat está funcionando ok.

Alguém poderia me ajudar?

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.

2 Respostas

romarcio

Qual a versão do seu JDK ?
E qual a versão JRE ou JDK que está setada para o Jboss nas variaveis de ambiente?

Vmaia

Olá,

Já tivemos problemas com o JBoss 405 quando se utiliza o “for-each”…

teu possível problema…

for (Pessoa pessoa : lista) { out.println("Nome: " + pessoa.getNome()); out.println("CPF: " + pessoa.getCpf()); out.println("---------------"); }

para resolver acredito que tenha que utilzar o for atraves de iteração mesmo, não acredito que mudar a JDK vá resolver, aqui no trampo não rsolveu.

for (Iterator<type> iter = coll.iterator(); iter.hasNext(); ) { type var = iter.next(); body-of-loop }

ou migra teu jboss :stuck_out_tongue: , boa sorte

Criado 1 de julho de 2010
Ultima resposta 1 de jul. de 2010
Respostas 2
Participantes 3