Erro ao Listar dados

2 respostas
fporto

Pessoal,

Sou iniciante em Java e estou com o seguinte problema. Criei uma aplicação que lista os usuários cadastrados no banco, para acesso ao banco de dados utilizo o Hibernate, e para camada de apresentação utilizo Java Server Faces, porem quando mando lista os usuarios e exibido o erro conforme abaixo, Já recriei as entidades, classes e nada, quando testo a conexão através de um Bean de teste, funciona, mas quando tento exibir a lista de usuário atraves do jsp e apresentado o erro abaixo.
Segue abaixo os fontes do projeto.

Help…

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: /usuarios.jsp(21,16) ‘#{UsuarioFace.usuarioCadastrado} Error reading usuarioCadastrado on type Interface.UsuarioFace

javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)

org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause
org.apache.jasper.el.JspELException: /usuarios.jsp(21,16) ‘#{UsuarioFace.usuarioCadastrado} Error reading usuarioCadastrado on type Interface.UsuarioFace

org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)

javax.faces.component.UIData.getValue(UIData.java:582)

javax.faces.component.UIData.getDataModel(UIData.java:1063)

javax.faces.component.UIData.setRowIndex(UIData.java:417)

com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)

javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)

javax.faces.component.UIData.encodeBegin(UIData.java:879)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)

javax.faces.render.Renderer.encodeChildren(Renderer.java:137)

javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)

javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)

com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)

com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

org.hibernate.hql.ast.QuerySyntaxException: usuario is not mapped [from usuario usr]
org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:158)
org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:87)
org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:70)
org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:255)
org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056)
org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:77)
org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:56)
org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
metodo.GeneridoDAO.getPureList(GeneridoDAO.java:73)
metodo.UsuarioDAO.getUsuarios(UsuarioDAO.java:52)
Interface.UsuarioFace.getUsuarioCadastrado(UsuarioFace.java:25)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
org.apache.el.parser.AstValue.getValue(AstValue.java:118)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
javax.faces.component.UIData.getValue(UIData.java:582)
javax.faces.component.UIData.getDataModel(UIData.java:1063)
javax.faces.component.UIData.setRowIndex(UIData.java:417)
com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
javax.faces.component.UIData.encodeBegin(UIData.java:879)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:245)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:176)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

usuarios.jsp

<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

<%@taglib prefix=“f” uri=“http://java.sun.com/jsf/core”%>
<%@taglib prefix=“h” uri=“http://java.sun.com/jsf/html”%>

<%

This file is an entry point for JavaServer Faces application.

%>

<f:view>







Usuários

<h:outputText value=“JavaServer Faces”/>


<h:form>
<h:dataTable var=“item” value="#{UsuarioFace.usuarioCadastrado}">
<h:column>
<f:facet name=“header”>
<h:outputText value=“Codigo”/>
</f:facet>
<h:outputText value="#{item.id}"/>
</h:column>
<h:column>
<f:facet name=“header”>
<h:outputText value=“Nome”/>
</f:facet>
<h:outputText value="#{item.nome}"/>
</h:column>
</h:dataTable>
</h:form>
    </body>
</html>

</f:view>

Classe usuário

package entidade;

import java.util.List;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.FetchType;

import javax.persistence.Id;

import javax.persistence.OneToMany;

import javax.persistence.Table;
@Entity

@Table(name = usuario)

public class Usuario implements java.io.Serializable {
private static final long serialVersionUID = 1L;

@Id
@Column(name = "ID", nullable = false)
private Integer id;

@Column(name = "nome", nullable = false)
private String nome;

@Column(name = "login", nullable = false)
private String login;

@Column(name = "senha", nullable = false)
private String senha;

@OneToMany(mappedBy = "usuarioGeracao",fetch=FetchType.LAZY)
private List<Produto> produtos;

@OneToMany(mappedBy="usuarioVenda",fetch=FetchType.LAZY)
private List<Venda> usuarioVenda;

public Usuario() {
}

public Integer getId() {
    return id;
}

public void setId(Integer id) {
    this.id = id;
}

public String getLogin() {
    return login;
}

public void setLogin(String login) {
    this.login = login;
}

public String getNome() {
    return nome;
}

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

public String getSenha() {
    return senha;
}

public void setSenha(String senha) {
    this.senha = senha;
}

public boolean isvalidSenha(String senhaAtual) {
    return senhaAtual.equals(senha);
}

public List<Produto> getProdutos() {
    return produtos;
}

public void setProdutos(List<Produto> produtos) {
    this.produtos = produtos;
}


public List<Venda> getUsuarioVenda() {
    return usuarioVenda;
}

public void setUsuarioVenda(List<Venda> usuarioVenda) {
    this.usuarioVenda = usuarioVenda;
}

}


DAO

public class UsuarioDAO extends GeneridoDAO {

private static final long serialVersionUID = 1L;
private Session session;

public UsuarioDAO(Session session) {
    this.session = session; //recebe um session
}

public UsuarioDAO() {
    this.session = getSession();//Cria um session
}

public int addUsuario(Usuario idUser) {
    saveOrUpdate(idUser);
    return idUser.getId();
}

public void removeUsuario(Usuario user) {
    removePojo(user);
}

public void updatUsuarioo(Usuario user) {
    updatePojo(user);
}

public Integer getUsuario(Integer idUsuarioo) {
    Usuario user = getPojo(Usuario.class, idUsuarioo);
    return user.getId();
}

public boolean validaLogin(String login, String senha) {
    return getPurePojo("from usuario usr where usr.login = ?1 and usr.senha = ?2", login, senha) != null;
}

public List<Usuario> getUsuarios() {
    Hibernate.initialize(Usuario.class);
    return getPureList(Usuario.class, "from usuario usr");
}

}

public class UsuarioFace {

private List<Usuario> usuarioCadastrado = null;
private UsuarioDAO userDAO = new UsuarioDAO();

public UsuarioFace() {
}

public List<Usuario> getUsuarioCadastrado() {
    if (usuarioCadastrado == null) {
        usuarioCadastrado = userDAO.getUsuarios();// Busca usuario quando vier nulo
         System.out.println(usuarioCadastrado);
          return usuarioCadastrado;
    }
    System.out.println(usuarioCadastrado);
    return usuarioCadastrado; // retorna usuario já em memoria != de nulo
}

}

2 Respostas

R

Se você ja se certificou que a classe está corretamente configurada no seu persistence.xml, tente alterar o return da sua “public List getUsuarios()” (no UsuarioDAO) da seguinte forma:

return getPureList(Usuario.class, "from Usuario usr");

ou

return getPureList(Usuario.class, "from entidade.Usuario usr");

Boa sorte…
[]'s

fporto

Fiz o teste e mesmo assim não funcionou, e no persistence.xml todas as classes estão adicionadas conforme abaixo.

<?xml version="1.0" encoding="UTF-8"?> org.hibernate.ejb.HibernatePersistence entidade.Produto entidade.Usuario entidade.Venda true
Criado 26 de maio de 2010
Ultima resposta 27 de mai. de 2010
Respostas 2
Participantes 2