Olá pessoal,
Sou novato na área de JAVA e estou com uma dúvida:
Estou com um pequeno projeto de Java composto, por 3 JSP: a primeira é a index, e as outras são uma para cadastro e outra para consulta.
quando clico no link para cadastro apresenta o seguinte 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 /pessoa.jsp at line 12
9: <html:form method="post" action="Controle.do">
10:
11: Informe seu Nome<br/>
12: <html:text property="pessoa.nome" />
13:
14: <br/><br/>
15:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: Invalid argument looking up property: "pessoa.nome" of bean: "org.apache.struts.taglib.html.BEAN"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.pessoa_jsp._jspService(pessoa_jsp.java:178)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.jsp.JspException: Invalid argument looking up property: "pessoa.nome" of bean: "org.apache.struts.taglib.html.BEAN"
org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:960)
org.apache.struts.taglib.html.BaseFieldTag.prepareValue(BaseFieldTag.java:121)
org.apache.struts.taglib.html.BaseFieldTag.renderInputElement(BaseFieldTag.java:102)
org.apache.struts.taglib.html.BaseFieldTag.doStartTag(BaseFieldTag.java:81)
org.apache.jsp.pessoa_jsp._jspx_meth_html_005ftext_005f0(pessoa_jsp.java:256)
org.apache.jsp.pessoa_jsp._jspx_meth_html_005fform_005f0(pessoa_jsp.java:204)
org.apache.jsp.pessoa_jsp._jspService(pessoa_jsp.java:91)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.24 logs.
--------------------------------------------------------------------------------
Apache Tomcat/6.0.24
Eu estou utilizando o mysql como banco de dados.
Vou postar as classes:
Classe Pessoa da package entity.
package entity;
import javax.persistence.*;
@Entity
@Table
public class Pessoa {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column
private Integer idpessoa;
@Column(length = 35)
private String nome;
@Column(length = 35)
private String email;
public Integer getIdpessoa() {
return idpessoa;
}
public void setIdpessoa(Integer idpessoa) {
this.idpessoa = idpessoa;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Pessoa(Integer idpessoa, String nome, String email) {
super();
this.idpessoa = idpessoa;
this.nome = nome;
this.email = email;
}
public Pessoa() {
}
@Override
public String toString() {
return "Pessoa [idpessoa=" + idpessoa + ", nome=" + nome + ", email="
+ email + "]";
}
}
Classe PessoaDao da packge persistence.
package persistence;
import org.hibernate.*;
import entity.*;
import java.util.*;
public class PessoaDao {
Session session; // Abrir a sessção
Transaction transaction; // Iniciar e fechar a transação
Query query; // Consulta - HQL - Hibernate Query Language
Criteria criteria; // Consulta (mais elaborada)
@SuppressWarnings("unchecked")
public List<Pessoa> findByAll() throws Exception {
session = HibernateUtil.getSessionFactory().openSession();
List<Pessoa> listapessoa = session.createQuery("from Pessoa p").list();
session.close();
return listapessoa;
}
/*
@SuppressWarnings("unchecked")
public List<Pessoa> findByAll() throws Exception{
session = HibernateUtil.getSessionFactory().openSession();
return session.createQuery("from Pessoa p").list();
}
*/
@SuppressWarnings("unchecked")
public List<Pessoa> findAll() throws Exception{
session = HibernateUtil.getSessionFactory().openSession();
query = session.createQuery("select p from Pessoa as p order by p.nome asc");
return query.list();
}
public Pessoa finByCode(Integer cod) throws Exception{
session = HibernateUtil.getSessionFactory().openSession();
Pessoa pessoa = (Pessoa) session.get(Pessoa.class, cod);
session.close();
return pessoa;
}
public void save(Pessoa pessoa) throws Exception{
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
session.save(pessoa);
transaction.commit();
session.close();
}
public void deletar(Pessoa pessoa) throws Exception{
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
session.delete(pessoa);
transaction.commit();
session.close();
}
public void alterar(Pessoa pessoa) throws Exception{
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
session.update(pessoa);
transaction.commit();
session.close();
}
@SuppressWarnings("unchecked")
public List<Pessoa> listarPessoa() throws Exception{
session = HibernateUtil.getSessionFactory().openSession();
List<Pessoa> lista = session.createCriteria(Pessoa.class).list();
//List<Pessoa> lista = (List<Pessoa>) session.createQuery("from Pessoa p");
//session.close();
return lista;
}
}
Classe ManagerAction da package manager.
package manager;
import org.apache.struts.action.ActionForm;
import entity.*;
import persistence.*;
import java.util.*;
@SuppressWarnings("serial")
public class ManagerAction extends ActionForm{
private Pessoa pessoa;
private List<Pessoa> listapessoa;
//private List<Pessoa> listapessoa = new ArrayList<Pessoa>();
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public List<Pessoa> getListapessoa() {
//Cria espaço de memória para listapessoa
listapessoa = new ArrayList<Pessoa>();
try{
PessoaDao pd = new PessoaDao();
listapessoa = pd.findByAll();
// Busca todos os dados do banco
// listapessoa = new PessoaDao().findAll();
}catch(Exception e){
e.printStackTrace();
}
return listapessoa;
}
public void setListapessoa(List<Pessoa> listapessoa) {
this.listapessoa = listapessoa;
}
@Override
public String toString() {
return "ManagerAction [pessoa=" + pessoa + ", listapessoa="
+ listapessoa + "]";
}
}
Classe Controle da package control.
package control;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import manager.*;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import persistence.PessoaDao;
public class Controle extends Action{
Integer cod = 0;
String cmd = "";
String parametro = "";
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
cmd = request.getParameter("cmd");
cod = new Integer(request.getParameter("id"));
if (cmd.equalsIgnoreCase("excluir")){
try{
delecao(null,null,request,response);
parametro = "consulta";
}catch(Exception e){
e.printStackTrace();
}
}
if (cmd.equalsIgnoreCase("alterar")){
try{
inclusao(null,null,request,response);
parametro = "fim";
}catch(Exception e){
e.printStackTrace();
}
}
return mapping.findForward(parametro);
}
public ActionForward delecao(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
try{
PessoaDao pd = new PessoaDao();
pd.deletar(pd.finByCode(cod));
}catch(Exception e){
e.printStackTrace();
}
return null;
}
public ActionForward inclusao(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
try{
PessoaDao pd = new PessoaDao();
pd.save(((ManagerAction)form).getPessoa());
request.setAttribute("mensagem", "Dados Gravados");
}catch(Exception e){
request.setAttribute("mensagem", e.getMessage());
}
return null;
}
}
A Classe HibernateUtil da package persistence
package persistence;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration().configure("config/mysql_hibernate.cfg.xml").buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
A XML da package config
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/struts3</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">coti</property>
<mapping class="entity.Pessoa"/>
</session-factory>
</hibernate-configuration>
O arquivo struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources>
</data-sources>
<form-beans>
<form-bean name="ManagerAction" type="manager.ManagerAction"/>
</form-beans>
<global-exceptions>
</global-exceptions>
<global-forwards>
</global-forwards>
<action-mappings>
<action path="/Controle" name="ManagerAction" type="control.Controle" scope="request">
<forward name="consulta" path="/consulta.jsp"/>
<forward name="fim" path="/pessoa.jsp"/>
</action>
</action-mappings>
<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
<message-resources parameter="MessageResources"/>
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"/>
<set-property property="moduleAware" value="true"/>
</plug-in>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
A JPS index
<h1>Projeto com Cadastro e Consulta</h1>
<h2>Hibernate e Struts</h2>
<br/>
<p/>
<br/>
<a href="pessoa.jsp">Cadastro</a>
<br/><br/>
<a href="consulta.jsp">Consultar Dados</a>
<br/>
A JSP consulta ([color=blue]esta está funcionando[/color])
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<html:html>
<html:form method="post" action="Controle">
<table border="1" width="50%">
<tr>
<th align="center">IdPessoa</th>
<th align="center">Nome</th>
<th align="center">Email</th>
<th align="center" bgcolor="#ff0033">Deletar</th>
<th align="center" bgcolor="#6699ff">Alterar</th>
</tr>
<logic:iterate id="pessoa" name="ManagerAction" property="listapessoa">
<tr>
<td align="center"><bean:write name="pessoa" property="idpessoa"/></td>
<td align="center"><bean:write name="pessoa" property="nome"/></td>
<td align="center"><bean:write name="pessoa" property="email"/></td>
<td align="center" bgcolor="#ff9900">
<a href="Controle.do?cmd=excluir&alterar&id=<bean:write name="pessoa" property="idpessoa"/>">Excluir</a>
</td>
<td align="center" bgcolor="#33ccff">Alterar</td>
</tr>
</logic:iterate>
</table>
</html:form>
<p/>
<a href="index.jsp">Voltar</a>
</html:html>
A JSP pessoa ([color=red]ESTA QUE ESTÁ APRESENTANDO ERRO[/color])
<%@taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<html:html>
<h3>Cadastro de Emails</h3>
<html:form method="post" action="Controle.do">
Informe seu Nome<br/>
<html:text property="pessoa.nome" />
<br/><br/>
Informe seu Email<br/>
<html:text property="pessoa.email" />
<br/><br/>
<html:submit value="Realizar Cadastro" />
<p>
<bean:write name="mensagem" ignore="true" />
</p>
</html:form>
<br/><br/>
<p/>
<table border="1" width="50%">
<logic:iterate name="ManagerAction" property="listapessoa" id="pessoa">
<tr>
<td> <bean:write name="pessoa" property="idpessoa" /> </td>
<td> <bean:write name="pessoa" property="nome" /> </td>
<td> <bean:write name="pessoa" property="email" /> </td>
</tr>
</logic:iterate>
</table>
<a href="index.jsp">Voltar</a>
</html:html>
Já tentei tudo que eu sei.
Se alguém puder me ajudar, desde já agradeço!