Olá Pessoal,
Estou desenvolvendo uma api para controle de usuários. Contudo, ao gerar uma lista utilizando o datatable:
<h:form id="list">
<h:messages/>
<h:dataTable value="#{usuarioBean.listUsuario}" var="usuario" rules="rows" cellspacing="5">
<f:facet name="caption">
Lista de Usuario cadastrados no sistema.
</f:facet>
<f:facet name="inicio">
Inicio da Lista de usuarios.
</f:facet>
<f:facet name="fim">
Final da Lista de Usuarios.
</f:facet>
<h:column>
<h:commandLink action="/admin/cadUsuario.xhtml">
<h:graphicImage library="resources" name="usuario_ativo_1.png"/>
<f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}"/>
<f:setPropertyActionListener target="#{usuarioBean.destinoSalvar}" value="/admin/atualizado.xhtml"/>
</h:commandLink>
</h:column>
<h:column>
<f:facet name="inicio">
Codigo:
</f:facet>
#{usuario.id}
</h:column>
<h:column>
<f:facet name="inicio">
Nome:
</f:facet>
#{usuario.nome}
</h:column>
<h:column>
<f:facet name="inicio">
Email:
</f:facet>
#{usuario.nome}
</h:column>
<h:column>
<h:commandLink action="#{usuarioBean.editar}">
<h:graphicImage library="resources" name="addedit.png"/>
<f:setPropertyActionListener target="#{UsuarioBean.usuario}" value="#{usuario}"/>
</h:commandLink>
</h:column>
<h:column>
<h:commandLink action="#{usuarioBean.excluir}">
<h:graphicImage library="resources" name="delete_sel.png"/>
<f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}"/>
</h:commandLink>
</h:column>
</h:dataTable>
</h:form>
Através do dataTable value="#{usuarioBean.listUsuario} aciono o método getListUsuario() do Bean UsuarioBean:
private Usuario usuario = new Usuario();
private Integer confirmaSenha;
private Integer status;
private String email;
private String destinoSalvar;
private List<Usuario> listUsuario;
public List<Usuario> getListUsuario() {
if (this.listUsuario == null) {
UsuarioRN usuarioRN = new UsuarioRN();
this.listUsuario = usuarioRN.listar();
}
O método usuarioRN.listar() é chamado da Classe da regra de negócio:
public List<Usuario> listar() {
return this.UsuarioDAO.listar();
}
O método UsuarioDAO.listar() chama a interface:
package br.ifrr.usuario;
import br.ifrr.entity.*;
import java.util.List;
/**
*
* @author Cristofe Rocha
*/
public interface UsuarioDAO {
public void salvar(Usuario usuario);
public void atualizar(Usuario usuario);
public void excluir(Usuario usuario);
public List<Usuario> listar();
}
O método listar() é a interface utilizada pela classe UsuarioDAOhibernate:
public List<Usuario> listar() {
Criteria criteria = this.sessao.createCriteria(Usuario.class);
criteria.add(Restrictions.eq(null, Usuario));
return criteria.list();
}
2 [http-8084-2] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.3.1.GA
43 [http-8084-2] INFO org.hibernate.cfg.Environment - Hibernate 3.2.5
46 [http-8084-2] INFO org.hibernate.cfg.Environment - hibernate.properties not found
48 [http-8084-2] INFO org.hibernate.cfg.Environment - Bytecode provider name : cglib
52 [http-8084-2] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
242 [http-8084-2] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
242 [http-8084-2] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
394 [http-8084-2] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
566 [http-8084-2] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: br.ifrr.entity.Usuario
614 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findAll => SELECT u FROM Usuario u
614 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByStatus => SELECT u FROM Usuario u WHERE u.status = :status
614 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByPermissao => SELECT u FROM Usuario u WHERE u.permissao = :permissao
615 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findById => SELECT u FROM Usuario u WHERE u.id = :id
615 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByNome => SELECT u FROM Usuario u WHERE u.nome = :nome
615 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByUsuario => SELECT u FROM Usuario u WHERE u.usuario = :usuario
615 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByPasswd => SELECT u FROM Usuario u WHERE u.passwd = :passwd
615 [http-8084-2] INFO org.hibernate.cfg.annotations.QueryBinder - Binding Named query: Usuario.findByEmail => SELECT u FROM Usuario u WHERE u.email = :email
670 [http-8084-2] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity br.ifrr.entity.Usuario on table usuario
810 [http-8084-2] INFO org.hibernate.cfg.AnnotationConfiguration - Hibernate Validator not found: ignoring
1017 [http-8084-2] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
1017 [http-8084-2] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
1017 [http-8084-2] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
1032 [http-8084-2] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.postgresql.Driver at URL: jdbc:postgresql://localhost:5432/aluno
1032 [http-8084-2] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=postgres, password=****}
1300 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - RDBMS: PostgreSQL, version: 9.0.3
1300 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 8.3 JDBC3 with SSL (build 603)
1356 [http-8084-2] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.PostgreSQLDialect
1363 [http-8084-2] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
1366 [http-8084-2] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): disabled
1367 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
1368 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
1368 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
1368 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
1368 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
1368 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
1372 [http-8084-2] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Cache provider: org.hibernate.cache.NoCacheProvider
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
1372 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
1384 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
1384 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
1385 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
1385 [http-8084-2] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
1548 [http-8084-2] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
1951 [http-8084-2] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
18/04/2012 12:10:09 com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
GRAVE: Error Rendering View[/admin/listUsuario.xhtml]
javax.el.ELException: /admin/listUsuario.xhtml @12,104 value="#{usuarioBean.listUsuario}": Error reading 'listUsuario' on type br.ifrr.usuario.UsuarioBean
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:107)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
at javax.faces.component.UIData.getValue(UIData.java:554)
at javax.faces.component.UIData.getDataModel(UIData.java:1248)
at javax.faces.component.UIData.setRowIndex(UIData.java:447)
at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:81)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:823)
at javax.faces.component.UIData.encodeBegin(UIData.java:937)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1611)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.NullPointerException
at br.ifrr.usuario.UsuarioDAOHibernate.listar(UsuarioDAOHibernate.java:63)
at br.ifrr.usuario.UsuarioRN.listar(UsuarioRN.java:42)
at br.ifrr.usuario.UsuarioBean.getListUsuario(UsuarioBean.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
... 35 more
A linha UsuarioDAOHibernate.java:63) é :
public List<Usuario> listar() {
Criteria criteria = this.sessao.createCriteria(Usuario.class); <<<<<<<<<linha 63>>>>>>>>>>
criteria.add(Restrictions.eq(null, Usuario));
return criteria.list();
}
}
Um outro erro acontecenos mesmos logs em:
18/04/2012 12:10:09 com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
GRAVE: Error Rendering View[/admin/listUsuario.xhtml]
javax.el.ELException: /admin/listUsuario.xhtml @12,104 value="#{usuarioBean.listUsuario}": Error reading 'listUsuario' on type br.ifrr.usuario.UsuarioBean
Mas o método listUsuario foi implementado como foi visto acima.
Alguém pode me ajudar?