Caros colegas,
Estou com um problema em um JSF que não executa o back bean não por reza braba. O estranho é que no construtor do back bean coloquei um código e marquei com um breakpoint, mas nada, nada executa. A ideia é criar uma datatable com todo os meus usuário para que possa fazer edição dos dados deles. Abaixo segue o meu código.
UsuarioManagedBean <= BEAN
package br.com.snclavalinmarte.pcp.bean;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.event.ActionEvent;
import javax.inject.Named;
import br.com.snclavalinmarte.pcp.entity.usuario.Usuario;
import br.com.snclavalinmarte.pcp.exception.ApplicationException;
import br.com.snclavalinmarte.pcp.service.UsuarioService;
@RequestScoped
@Named(value = "usuarioManagedBean")
public class UsuarioManagedBean extends GenericManagedBean implements Serializable
{
private static final long serialVersionUID = 1L;
private Usuario usuario = new Usuario();
private List<Usuario> usuarios = new ArrayList<Usuario>();
@EJB
private UsuarioService usuarioService;
/** Creates a new instance of ClienteBean */ <<<<<<<<<<<<<<<<<<<<<<<<<< CONSTRUTOR NUNCA É EXECUTADO
public UsuarioManagedBean()
{
try
{
// busca todos registros do banco e popula a lista de usuários
usuarios = usuarioService.retrieveAll();
}
catch (ApplicationException e)
{
sendErrorMessageToUser("Erro na obtenção da lista de usuários!!!");
}
}
@PostConstruct
public void salvar(ActionEvent event)
{
// salvar
usuarioService.create(usuario);
// criando um novo objeto para caso for inserir novamente
usuario = new Usuario();
// busca todos registros do banco e popula a lista de usuários
try
{
usuarios = usuarioService.retrieveAll();
}
catch (ApplicationException e)
{
sendErrorMessageToUser("Erro na obtenção da lista de usuários!!!");
}
}
public void editar()
{
// busca no banco de dados qual registro que vai ser alterado
try
{
usuario = usuarioService.retrieve(usuario.getId());
}
catch (ApplicationException e)
{
sendErrorMessageToUser("Erro na obtenção do usuário!!!");
}
}
public void excluir()
{
// apagar
usuarioService.delete(usuario);
// busca todos registros do banco e popula a lista de usuários
try
{
usuarios = usuarioService.retrieveAll();
}
catch (ApplicationException e)
{
sendErrorMessageToUser("Erro na obtenção da lista de usuários!!!");
}
}
public Usuario getUsuario()
{
return usuario;
}
public void setUsuario(Usuario usuario)
{
this.usuario = usuario;
}
public List<Usuario> getUsuarios()
{
return usuarios;
}
public void setUsiarios(List<Usuario> usuarios)
{
this.usuarios = usuarios;
}
}
manutencaoUsuarios.xhtml <= XHTML
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title>Cadastro de usuários</title>
</h:head>
<h:body>
<h:form id="form">
<p:panel header="USUARIO">
<p:messages />
<h:panelGrid columns="2">
<h:outputLabel value="MATRÍUCLA:" for="matricula" />
<p:inputText id="matricula" label="matricula" value="#{usuarioManagedBean.usuario.matricula}" maxlength="14" size="40" />
<h:outputLabel value="NOME:" for="nome" />
<p:inputText id="nome" label="nome" value="#{usuarioManagedBean.usuario.nome}" maxlength="14" size="40" />
<h:outputLabel value="USUÁRIO:" for="username" />
<p:inputText id="username" label="username" value="#{usuarioManagedBean.usuario.username}" maxlength="14" size="40" />
<h:outputLabel value="E-MAIL:" for="email" />
<p:inputText id="email" label="email" value="#{usuarioManagedBean.usuario.email}" maxlength="14" size="40" />
<h:outputLabel value="DATA DE ADMISSÃO:" for="dataAdmissao" />
<p:inputText id="dataAdmissao" label="dataAdmissao" value="#{usuarioManagedBean.usuario.dataAdmissao}" maxlength="14" size="40" />
<h:outputLabel value="DATA DE DEMISSÃO:" for="dataDemissao" />
<p:inputText id="dataDemissao" label="dataDemissao" value="#{usuarioManagedBean.usuario.dataDemissao}" maxlength="14" size="40" />
<h:outputLabel value="ESTADO" for="uf" />
<p:inputText id="uf" label="uf" value="#{usuarioManagedBean.usuario.nome}" maxlength="14" size="40" />
<h:outputLabel value="MUNICÍPIO:" for="mun" />
<p:inputText id="mun" label="mun" value="#{usuarioManagedBean.usuario.nome}" maxlength="14" size="40" />
<p:commandButton id="btnSalvar" value="SALVAR" actionListener="#{usuarioManagedBean.salvar}" update="form" />
</h:panelGrid>
<p:dataTable id="tabela" value="#{usuarioManagedBean.usuarios}" var="umUsuario" emptyMessage="Nenhum registro incluido." paginator="true" rows="10">
<f:facet name="header">Lista de usuários</f:facet>
<p:column headerText="MATRÍUCLA" style="text-align: center">
<h:outputText value="#{umUsuario.matricula}" />
</p:column>
<p:column headerText="NOME" style="text-align: center">
<h:outputText value="#{umUsuario.nome}" />
</p:column>
<p:column headerText="USUÁRIO" style="text-align: center">
<h:outputText value="#{umUsuario.username}" />
</p:column>
<p:column headerText="E-MAIL" style="text-align: center">
<h:outputText value="#{umUsuario.email}" />
</p:column>
<p:column headerText="DATA DE ADMISSÃO" style="text-align: center">
<h:outputText value="#{umUsuario.dataAdmissao}" />
</p:column>
<p:column headerText="DATA DE DEMISSÃO" style="text-align: center">
<h:outputText value="#{umUsuario.dataDemissao}" />
</p:column>
<p:column headerText="ALTERAR - EXCLUIR" style="text-align: center">
<p:commandButton action="#{usuarioManagedBean.editar}" value="EDITAR" title="Editar" ajax="false" >
<f:setPropertyActionListener value="#{umUsuario}" target="#{usuarioManagedBean.usuario}" />
</p:commandButton>
<p:commandButton value="EXCLUIR" title="Excluir" onclick="confirmation.show()" style="margin-left: 5px" >
<f:setPropertyActionListener value="#{umUsuario}" target="#{usuarioManagedBean.usuario}" />
</p:commandButton>
</p:column>
</p:dataTable>
</p:panel>
</h:form>
<h:form id="dialog">
<p:confirmDialog message="Deseja realmente excluir este registro?" hideEffect="explode" header="Aviso" severity="alert" widgetVar="confirmation" modal="true">
<p:commandButton id="btnSim" value="Sim" oncomplete="confirmation.hide();" actionListener="#{usuarioManagedBean.excluir}" process="@form" />
<p:commandButton id="btnNao" value="Não" onclick="confirmation.hide();" type="button"/>
</p:confirmDialog>
</h:form>
</h:body>
</html>
Erro
17:28:31,246 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "PCPEAR.ear"
17:31:00,388 WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http-localhost-127.0.0.1-8080-2) /pages/protected/admin/manutencaoUsuarios.xhtml @20,135 value="#{usuarioManagedBean.usuario.matricula}": Target Unreachable, identifier 'usuarioManagedBean' resolved to null: javax.el.PropertyNotFoundException: /pages/protected/admin/manutencaoUsuarios.xhtml @20,135 value="#{usuarioManagedBean.usuario.matricula}": Target Unreachable, identifier 'usuarioManagedBean' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100) [jsf-impl-2.1.7-jbossorg-2.jar:]
at org.primefaces.renderkit.InputRenderer.findImplicitConverter(InputRenderer.java:170) [primefaces-3.5.jar:]
at org.primefaces.renderkit.InputRenderer.findConverter(InputRenderer.java:190) [primefaces-3.5.jar:]
at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:196) [primefaces-3.5.jar:]
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIInput.validate(UIInput.java:960) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIInput.executeValidate(UIInput.java:1233) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIInput.processValidators(UIInput.java:698) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at org.primefaces.component.panel.Panel.processValidators(Panel.java:297) [primefaces-3.5.jar:]
at javax.faces.component.UIForm.processValidators(UIForm.java:253) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.7-jbossorg-2.jar:]
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.7-jbossorg-2.jar:]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:489) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_10]
WEB.XML
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>PCP</display-name>
<welcome-file-list>
<welcome-file>pages/protected/admin/manutencaoUsuarios.xhtml</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
<url-pattern>*.jsf</url-pattern>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted Area - ADMIN Only</web-resource-name>
<url-pattern>/pages/protected/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>ADMIN</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Restricted Area - USER and ADMIN</web-resource-name>
<url-pattern>/pages/protected/user/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>USER</role-name>
<role-name>ADMIN</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/pages/public/login.xhtml</form-login-page>
<form-error-page>/pages/public/loginError.xhtml</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>ADMIN</role-name>
</security-role>
<security-role>
<role-name>USER</role-name>
</security-role>
<security-role>
<role-name>PCP</role-name>
</security-role>
<security-role>
<role-name>GER</role-name>
</security-role>
<security-role>
<role-name>SUP</role-name>
</security-role>
<security-role>
<role-name>DIR</role-name>
</security-role>
</web-app>