Boa noite, ultima dúvida antes de ir dormir, estava cadastrando usuários normalmente, ai depois passei para a fase de se logar e ir para outra tela com autenticação.
agora ele autentica, mas na hora de gravar, ele não grava os usuários, pq da erro:
set 25, 2018 2:33:50 AM com.sun.faces.lifecycle.ProcessValidationsPhase execute
ADVERTÊNCIA: /pages/telaPrincipalLogin.xhtml @64,50 value="#{usuarioBean.usuario.nome}": Target Unreachable, ‘usuario’ returned null
javax.el.PropertyNotFoundException: /pages/telaPrincipalLogin.xhtml @64,50 value="#{usuarioBean.usuario.nome}": Target Unreachable, ‘usuario’ returned null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.primefaces.util.ComponentUtils.getConverter(ComponentUtils.java:152)
at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:199)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1045)
at javax.faces.component.UIInput.validate(UIInput.java:975)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1248)
at javax.faces.component.UIInput.processValidators(UIInput.java:712)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
at javax.faces.component.UIForm.processValidators(UIForm.java:253)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
at org.primefaces.component.dialog.Dialog.processValidators(Dialog.java:425)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1195)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1526)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1482)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.el.PropertyNotFoundException: Target Unreachable, ‘usuario’ returned null
at org.apache.el.parser.AstValue.getTarget(AstValue.java:124)
at org.apache.el.parser.AstValue.getType(AstValue.java:58)
at org.apache.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:168)
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98)
… 38 more
set 25, 2018 2:33:50 AM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
GRAVE: javax.el.PropertyNotFoundException: /pages/telaPrincipalLogin.xhtml @64,50 value="#{usuarioBean.usuario.nome}": Target Unreachable, ‘usuario’ returned null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.primefaces.util.ComponentUtils.getConverter(ComponentUtils.java:152)
at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:199)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1045)
at javax.faces.component.UIInput.validate(UIInput.java:975)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1248)
at javax.faces.component.UIInput.processValidators(UIInput.java:712)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
at javax.faces.component.UIForm.processValidators(UIForm.java:253)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
at org.primefaces.component.dialog.Dialog.processValidators(Dialog.java:425)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1261)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1195)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1526)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1482)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.el.PropertyNotFoundException: Target Unreachable, ‘usuario’ returned null
at org.apache.el.parser.AstValue.getTarget(AstValue.java:124)
at org.apache.el.parser.AstValue.getType(AstValue.java:58)
at org.apache.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:168)
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98)
… 38 more
sei que o erro é pq ele ta nulo, mas não entendo pq… se o do professor sergio ta dando certo, apesar de o dele nao ser igual o meu.
segue os meus códigos abaixo.
-------------------------------- tela principal xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<h:outputStylesheet library="css" name="file.css" />
<title>Login</title>
</h:head>
<h:body>
<p:growl id=“mensagem” />
<h:form>
<h:panelGrid width=“100%” style=“text-align:center”>
<p:graphicImage library=“imagens” name=“stefanini.jpg” width=“500” />
<div class="login-box" />
<h1>Login</h1>
<!-- Campo de usário -->
<p:inputText placeholder="Matricula" maxlength="7"
value="#{autenticacaoBean.usuario.matricula}" required="true"
requiredMessage="O campo matricula é obrigatório!">
</p:inputText>
<!-- Campo da senha -->
<p:password placeholder="Senha" maxlength="10"
value="#{autenticacaoBean.usuario.senha}" required="true"
requiredMessage="O campo senha é obrigatório!">
</p:password>
</h:panelGrid>
<h:panelGrid columns="2" width="100%" style="text-align:center">
<p:commandLink value="1ª Acesso"
oncomplete="PF('dlgCadastro').show();"
actionListener="#{usuarioBean.novo()}"
update=":formCadastro:painelCadastro" />
<p:commandButton value="Entrar" update=":mensagem"
actionListener="#{autenticacaoBean.autenticar()}" />
</h:panelGrid>
</h:form>
<!-- Tela de cadastro de usuario -->
<p:dialog header="Cadastro de Usuário" widgetVar="dlgCadastro"
draggable="false" resizable="false" modal="true">
<h:form id="formCadastro">
<h:panelGrid id="painelCadastro">
<p:inputText value="#{usuarioBean.usuario.nome}" placeholder="Nome"
size="30" maxlength="55" required="true"
requiredMessage="Campo nome obrigatório!" />
<p:inputText value="#{usuarioBean.usuario.matricula}"
placeholder="Matricula" size="15" maxlength="7" required="true"
requiredMessage="Campo matricula obrigatório!" />
<p:password value="#{usuarioBean.usuario.senha}" placeholder="Senha"
size="15" maxlength="12" required="true"
requiredMessage="Campo senha obrigatório!" />
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton value="Cadastrar"
actionListener="#{usuarioBean.salvar()}"
update=":mensagem :formCadastro:painelCadastro" />
<p:commandButton value="Cancelar"
oncomplete="PF('dlgCadastro').hide();" />
</h:panelGrid>
</h:form>
</p:dialog>
</h:body>
--------------------------------- usuario bean
package br.stefanini.projetopausa.bean;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.omnifaces.util.Messages;
import br.stefanini.projetopausa.dao.UsuarioDAO;
import br.stefanini.projetopausa.domain.Usuario;
@SuppressWarnings(“serial”)
@ManagedBean
@ViewScoped
public class UsuarioBean implements Serializable {
private Usuario usuario;
private List<Usuario> usuarios;
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public List<Usuario> getUsuarios() {
return usuarios;
}
public void setUsuarios(List<Usuario> usuarios) {
this.usuarios = usuarios;
}
@PostConstruct
public void listar() {
try {
UsuarioDAO usuarioDAO = new UsuarioDAO();
usuarios = usuarioDAO.listar();
} catch (RuntimeException erro) {
Messages.addGlobalError("Ocorreu um erro ao tentar listar o usuario");
erro.printStackTrace();
}
}
public void teste() {
Messages.addGlobalInfo("teste");
System.out.println("teste");
}
public void novo() {
usuario = new Usuario();
}
public void salvar() {
UsuarioDAO usuarioDAO = new UsuarioDAO();
usuarioDAO.salvar(usuario);
Messages.addFlashGlobalInfo("Usuario salvo com sucesso.");
}
}
-------------------------------------- usuario class java
package br.stefanini.projetopausa.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;
import javax.persistence.Transient;
@Entity
public class Usuario {
@Id
@Column(length = 7)
private String matricula;
@Column(length = 32, nullable = false)
private String senha;
@Transient
private String senhaCriptografada;
@Column(length = 55, nullable = false)
private String nome;
@Column(nullable = false)
private boolean status = false;
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public String getMatricula() {
return matricula;
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getSenhaCriptografada() {
return senhaCriptografada;
}
public void setSenhaCriptografada(String senhaCriptografada) {
this.senhaCriptografada = senhaCriptografada;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
--------------------------------------autentica bean
package br.stefanini.projetopausa.bean;
import java.io.IOException;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.omnifaces.util.Faces;
import org.omnifaces.util.Messages;
import br.stefanini.projetopausa.dao.UsuarioDAO;
import br.stefanini.projetopausa.domain.Usuario;
@ManagedBean
@SessionScoped
public class AutenticacaoBean {
private Usuario usuarioLogado;
private Usuario usuario;
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
@PostConstruct
public void novo() {
usuario = new Usuario();
}
public Usuario getUsuarioLogado() {
return usuarioLogado;
}
public void setUsuarioLogado(Usuario usuarioLogado) {
this.usuarioLogado = usuarioLogado;
}
public void autenticar() {
try {
UsuarioDAO usuarioDAO = new UsuarioDAO();
usuarioLogado = usuarioDAO.autenticar(usuario.getSenha(), usuario.getMatricula());
if (usuarioLogado == null) {
Messages.addGlobalError("Matricula ou senha incorretos");
return;
}
Faces.redirect("./pages/telaSecundariaPausa.xhtml");
} catch (IOException e) {
e.printStackTrace();
Messages.addGlobalError(e.getMessage());
}
}
}
-----------------------------------usuarioDao
package br.stefanini.projetopausa.dao;
import java.util.List;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import br.stefanini.projetopausa.domain.Usuario;
import br.stefanini.projetopausa.util.HibernateUtil;
public class UsuarioDAO {
public void salvar(Usuario usuario) {
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
Transaction transacao = null;
try {
transacao = sessao.beginTransaction();
sessao.save(usuario);
transacao.commit();
} catch (RuntimeException erro) {
if (transacao != null) {
transacao.rollback();
}
throw erro;
} finally {
sessao.close();
}
}
@SuppressWarnings("unchecked")
public List<Usuario> listar() {
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
try {
Criteria consulta = sessao.createCriteria(Usuario.class);
List<Usuario> resultado = consulta.list();
return resultado;
} catch (RuntimeException erro) {
throw erro;
} finally {
sessao.close();
}
}
// @SuppressWarnings("unchecked")
public Usuario buscar(String matricula) {
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
try {
Criteria consulta = sessao.createCriteria(Usuario.class);
consulta.add(Restrictions.idEq(matricula));
Usuario resultado = (Usuario) consulta.uniqueResult();
return resultado;
} catch (RuntimeException erro) {
throw erro;
} finally {
sessao.close();
}
}
public void excluir(Usuario usuario) {
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
Transaction transacao = null;
try {
transacao = sessao.beginTransaction();
sessao.delete(usuario);
transacao.commit();
} catch (RuntimeException erro) {
if (transacao != null) {
transacao.rollback();
}
throw erro;
} finally {
sessao.close();
}
}
public void editar(Usuario usuario) {
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
Transaction transacao = null;
try {
transacao = sessao.beginTransaction();
sessao.update(usuario);
transacao.commit();
} catch (RuntimeException erro) {
if (transacao != null) {
transacao.rollback();
}
throw erro;
} finally {
sessao.close();
}
}
public Usuario autenticar(String senha, String matricula) {
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
try {
Criteria consulta = sessao.createCriteria(Usuario.class);
consulta.add(Restrictions.eq("matricula", matricula));
SimpleHash hash = new SimpleHash("md5", senha);
consulta.add(Restrictions.eq("senha", hash.toHex()));
Usuario resultado = (Usuario) consulta.uniqueResult();
return resultado;
} catch (RuntimeException erro) {
throw erro;
} finally {
sessao.clear();
}
}
}
---------------------segunda tela
<?xml version="1.0" encoding="UTF-8" ?>
Tela de Pausas
<h:body>
<p:growl id=“mensagem” />
<h:form>
<p:graphicImage library="imagens" name="stefanini.jpg" width="180"
styleClass="imagemCentralizada" />
<p:menubar>
<p:submenu label="#{autenticacaoBean.usuarioLogado.nome}">
<p:menuitem value="Registrar pausa"
oncomplete="PF('dlgPausa').show();" icon="ui-icon-pause" />
<p:menuitem value="Editar cadastro"
oncomplete="PF('dlgEditarCadastro').show();" icon="ui-icon-pencil"
update=":mensagem" />
<p:menuitem value="Atualizar" icon="ui-icon-refresh" />
<p:menuitem value="Sobre" icon="ui-icon-info" />
</p:submenu>
<f:facet name="options">
<p:commandButton type="button" value="Sair" icon="ui-icon-extlink" />
</f:facet>
</p:menubar>
<p:dataTable value="#{usuarioBean.usuarios}" var="usuario">
<p:column headerText="Usuário" sortBy="#{usuario.nome}"
filterBy="#{usuario.nome}">
<h:outputText value="#{usuario.nome}" />
</p:column>
<p:column headerText="Status" sortBy="#{usuario.status}">
<h:outputText value="#{usuario.status}" />
</p:column>
</p:dataTable>
</h:form>
<!-- Dialogo de registrar Pausa -->
<p:dialog header="Registrar pausa" widgetVar="dlgPausa"
draggable="false" resizable="false" modal="true">
<h:form>
<h:panelGrid>
<p:inputText placeholder="Matricula" />
<p:selectOneMenu>
<f:selectItem itemValue="Pausa 10" itemLabel="Pausa 10" />
<f:selectItem itemValue="Intervalo" itemLabel="Intervalo" />
</p:selectOneMenu>
</h:panelGrid>
</h:form>
</p:dialog>
<!-- Dialogo de editar cadastro -->
<p:dialog header="Registrar pausa" widgetVar="dlgEditarCadastro"
draggable="false" resizable="false" modal="true">
<h:form>
<h:panelGrid>
<p:inputText placeholder="Matricula" />
<p:selectOneMenu>
<f:selectItem itemValue="Pausa 10" itemLabel="Pausa 10" />
<f:selectItem itemValue="Intervalo" itemLabel="Intervalo" />
</p:selectOneMenu>
</h:panelGrid>
</h:form>
</p:dialog>
</h:body>
vlw galera, por favor se possível e souberem que eu tentei de tudo desde as 22 horas de ontem.