dataTable não retorna registros (MVC) [RESOLVIDO]

E ae galera? Alguém pode ajudar???

Criei uma página em projeto que arquitetado em MVC com JPA + JSF + PrimeFaces. Entretanto, não está retornando os registros do banco de dados:

Códigos:

  • listaParametros.xhtml

[code]<?xml version='1.0' encoding='UTF-8' ?>

<ui:composition xmlns=“http://www.w3.org/1999/xhtml
xmlns:ui=“http://java.sun.com/jsf/facelets
xmlns:h=“http://java.sun.com/jsf/html
xmlns:f=“http://java.sun.com/jsf/core
xmlns:p=“http://primefaces.org/ui
template="./template.xhtml">
<ui:define name=“title”>Parâmetros do Sistema</ui:define>

<ui:define name=“content”>

  <h:form>
     <p:dataTable id="listaDeParametros" value="#{parametroManagedBean.parametros}" var="parametro">
        <f:facet name="header">Lista de Parâmetros do Sistema</f:facet>

        <p:column>
           <f:facet name="header">Item</f:facet>
           <h:outputText value="1" />
        </p:column>

        <p:column>
           <f:facet name="header">Descrição</f:facet>
           <h:outputText value="#{parametro.descricao}" />
        </p:column>

        <p:column>
           <f:facet name="header">Valor</f:facet>
           <h:outputText value="#{parametro.valor}" />
        </p:column>

        <p:column headerText="Editar">
           <p:rowEditor />
        </p:column>
     </p:dataTable>
  </h:form>

</ui:define>

</ui:composition>[/code]

  • ParametroManagedBean.java

[code]@ManagedBean(name = “parametroManagedBean”)
@SessionScoped
public class ParametroManagedBean {

private Parametro parametro;
private List parametros;

@EJB
private ParametroFachada parametroFachada;

public ParametroManagedBean() {
this.parametros = new ArrayList<>();
}

public Parametro getParametro() {
return parametro;
}

public void setParametro(Parametro parametro) {
this.parametro = parametro;
}

public List getParametros() {
return parametros;
}

public String alterar() {
parametroFachada.alterar(this.getParametro());
this.recuperarParametros();
return “/listaParametros”;
}

public String listar() {
this.recuperarParametros();
return “/listaParametros”;
}

public void recuperarParametros() {
this.parametros = parametroFachada.listar();
}

}
[/code]

  • ParametroFachada.java

[code]@Stateless
public class ParametroFachada {

@EJB
private ParametroDAO parametroDAO;

public void alterar(Parametro parametro) {
parametroDAO.alterar(parametro);
}

public List listar() {
return parametroDAO.obterTodos();
}
}
[/code]

  • ParametroDAO.java

[code]@Stateless
public class ParametroDAO {

@PersistenceContext
private EntityManager em;

public void alterar(Parametro parametro) {
em.merge(parametro);
}

public List obterTodos() {
return em.createQuery(“SELECT param FROM Parametro”).getResultList();
}
}[/code]

Já testei até imprimir o retorno da List na classe DAO e printar no console (como no Tomcat), mas nada aparece a não ser duas mensagens de warning no console do GlassFish:

WARNING: PWC4011: Unable to set request character encoding to UTF-8 from context /carteirinhas, because request parameters have already been read, or ServletRequest.getReader() has already been called

WARNING: JSF1063: AVISO! Definindo valor de atributo não serializável em HttpSession (chave: parametroManagedBean, classe do valor: br.ufscar.carteirinhas.controle.ParametroManagedBean).

Alguma ideia?
Att.

Na boa, a JPQL está funcionando?
SELECT param FROM Parametro

[quote=jakefrog]Na boa, a JPQL está funcionando?
SELECT param FROM Parametro[/quote]

Então… como posso testar essa JPQL? Pois já tentei outras opções como:

em.createQuery("SELECT param FROM Parametro AS param").getResultList();

e

em.createNamedQuery("Parametro.findAll").getResultList();

Att.

Esse post pode te ajudar: http://uaihebert.com/?p=1137

Hey jakefrog. O problema estava na camada… na camada entre a cadeira e o computador, como disse um amigo da Pós que faço… rs

Eu estava acessando a página pelo diretamente pela barra de endereço, o que não acionava do método listar() na classe Managed Bean. Tive que adicionar um menu (link) com a ação:

action="#{parametroManagedBean.listar}"

O detalhe faz a diferença!
Vlw.