DUVIDA ORIGINAL SEGUE ABAIXO
SOLUÇÃO: CRIEI UM PROJETO NOVO COPIEI AS CLASSES E FUNCIONOU NORMALMENTE … NAO SEI QUAL ERRO ERA MAS RECRIANDO O PROJETO FUNCIONOU SEM PROBLEMA NENHUM
OBRIGADO
Boa tarde Pessoal
Estou estudando Java Web pela apostila da caelum FJ-21.
Até ha parte de DAO funcionou tudo tranquilo, agora comecei a usar EL e o jsp:useBean para instanciar objetos e começou uma série de problemas.
Quando tento usar o useBean em qualquer página jsp independente de atributo aparece o seguinte erro:
org.apache.jasper.JasperException: /testaIdade.jsp(8,0) The value for the useBean class attribute br.com.fj.jdbc.dao.ContatoDAO is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1272)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1178)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
org.apache.jasper.compiler.Generator.generate(Generator.java:3426)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:216)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Se optar por nao usar o useBean e criar o objeto com scritlet ai ocorre o seguinte erro:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 7 in the generated java file
Only a type can be imported. br.com.fj.jdbc.modelo.Contato resolves to a package
An error occurred at line: 8 in the generated java file
Only a type can be imported. br.com.fj.jdbc.dao.ContatoDAO resolves to a package
An error occurred at line: 20 in the jsp file: /listaElegante.jsp
ContatoDAO cannot be resolved to a type
17: <body>
18: <%
19: try{
20: ContatoDAO contatoDAO = new ContatoDAO();
21: List<Contato> lst = contatoDAO.getLista();
22:
23: %>
An error occurred at line: 20 in the jsp file: /listaElegante.jsp
ContatoDAO cannot be resolved to a type
17: <body>
18: <%
19: try{
20: ContatoDAO contatoDAO = new ContatoDAO();
21: List<Contato> lst = contatoDAO.getLista();
22:
23: %>
An error occurred at line: 21 in the jsp file: /listaElegante.jsp
Contato cannot be resolved to a type
18: <%
19: try{
20: ContatoDAO contatoDAO = new ContatoDAO();
21: List<Contato> lst = contatoDAO.getLista();
22:
23: %>
24:
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Empaquei nessa situação os imports estão corretos e fiz o seguinte teste enquanto eu nao importo minhas classes funciona normalmente fiz um teste com EL passando um parametro de um form em uma pagina para outra e funcionou tentei fazer o mesmo teste mas usando o useBean e ocorreu os erros acima … Não faço idéia do que pode ser
Estou usando
Eclipse Ganymede
Tomcat 6.0.20
Java EE 5 - jdk 1.6 update 16
Ja procurei no forum mas nao encontrei nada que resolvesse o problema segue os jsp’s e o codigo.
Modelo Contato
[code]package br.com.fj.jdbc.modelo;
public class Contato {
private Long id;
private String nome;
private String email;
private String endereco;
//Get’s e Set’s
[/code]
Contato DAO
[code]package br.com.fj.jdbc.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import br.com.fj.jdbc.ConnectionFactory;
import br.com.fj.jdbc.modelo.Contato;
public class ContatoDAO {
private Connection conecction = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
public ContatoDAO()throws SQLException{
this.conecction = ConnectionFactory.getConnection();
}
public List getLista() throws SQLException{
ps = this.conecction.prepareStatement("select * from contatos");
rs = ps.executeQuery();
List<Contato>contatos = new ArrayList<Contato>();
while(rs.next()){
Contato contato = new Contato();
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
contatos.add(contato);
}
rs.close();
ps.close();
return contatos;
}
}[/code]
E o JSP que gera o erro
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="java.util.List"%>
<%@page import="br.com.fj.jdbc.modelo.Contato"%>
<%@page import="br.com.fj.jdbc.dao.ContatoDAO"%>
<%@page import="java.sql.SQLException"%>
<!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>Lista Contatos</title>
</head>
<body>
<%
try{
ContatoDAO contatoDAO = new ContatoDAO();
List<Contato> lst = contatoDAO.getLista();
%>
<c:forEach var="contato" items="${lst.lista}">
Nome:${contato.nome},
Email:${contato.email},
Endereco:${contato.endereco},
</c:forEach>
<%
}catch(SQLException e){
e.printStackTrace();
}
%>
</body>
</html>
Serei muito grato pela ajuda
Desde ja mto obrigado !!!