ola sou iniciante e estou tentando fazer um cadastro simples utilizando o Netbeans 7 com tomcat 7 e banco mysql fiz uma classe usuario com seus gets e sets uma classe HIbernate Util, um ManagedBean e qdo executo ele gera este erro
/novousuario.jsp(23,20) '#{usuarioBean.selectedUsuario.id}' Target Unreachable, 'selectedUsuario' returned null
e qdo se abre o stack trace aparece
org.apache.jasper.el.JspPropertyNotFoundException: /novousuario.jsp(23,20) '#{usuarioBean.selectedUsuario.id}' Target Unreachable, 'selectedUsuario' returned null
at org.apache.jasper.el.JspValueExpression.getType(JspValueExpression.java:63)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1028)
at javax.faces.component.UIInput.validate(UIInput.java:958)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1209)
at javax.faces.component.UIInput.processValidators(UIInput.java:698)
at javax.faces.component.UIForm.processValidators(UIForm.java:244)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1085)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1165)
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:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
e esta eh minha classe usuario
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageentity;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.Table;@Entity//@Table(name="usuarios")publicclassUsuarioimplementsjava.io.Serializable{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateIntegerid;privateintidade;privateStringnome;privateStringtelefone;publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}publicintgetIdade(){returnidade;}publicvoidsetIdade(intidade){this.idade=idade;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetTelefone(){returntelefone;}publicvoidsetTelefone(Stringtelefone){this.telefone=telefone;}@OverridepublicinthashCode(){inthash=0;hash+=(id!=null?id.hashCode():0);returnhash;}@Overridepublicbooleanequals(Objectobject){// TODO: Warning - this method won't work in the case the id fields are not setif(!(objectinstanceofUsuario)){returnfalse;}Usuarioother=(Usuario)object;if((this.id==null&&other.id!=null)||(this.id!=null&&!this.id.equals(other.id))){returnfalse;}returntrue;}@OverridepublicStringtoString(){return"entity.Usuario[ id="+id+" ]";}}
Quando essa tela é chamada o conteiner procura por um objeto no caso “selectedUsuario”, mas espera uma instancia já pronta dele, pois veja voce está fazendo essa chamada : #{usuarioBean.selectedUsuario.id} e esse objeto “selectedUsuario” ainda está null no seu MB, como ele encontrará o id dele?
Abraços
Daniel.
ClaudioRamone
daniel desculpa sou iniciante faz um mes q comecei a mexer com a linguagem e nao sei como resolver… nao achei nada nulo no MB
ClaudioRamone
Neste outro q eu fiz funcionou ele esta igualzinho a diferença é q este foi feito no JSP 1.2 ai fiz o face-config e no 2.0 nao tem o config ai direcionei a pagina
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagefaces;importentity.HibernateUtil;importentity.Usuario;importentity.dao.UsuarioJpaController;importjava.util.List;importjavax.management.Query;/** * * @author Claudio */publicclassUsuarioFace{/** Creates a new instance of UsuarioFace */publicUsuarioFace(){}publicUsuarioJpaControlleruserDAO=newUsuarioJpaController();publicUsuarioselectedUser;publicStringdoAddUser(){selectedUser=newUsuario();return"gotoAddNewUser";}publicStringfinishAddUser(){userDAO.create(selectedUser);return"teste";}publicUsuariogetSelectedUser(){returnselectedUser;}publicvoidsetSelectedUser(UsuarioselectedUser){this.selectedUser=selectedUser;}}
danieldomingues86
Olá,
Faça assim no seu MB : public Usuario selectedUsuario = new Usuario();
Abraços
Daniel.
ClaudioRamone
Agora ele não esta achando a classe Usuario este foi o erro
java.lang.IllegalArgumentException: Unknown entity: entity.Usuario
javax.faces.el.EvaluationException: java.lang.IllegalArgumentException: Unknown entity: entity.Usuario
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalArgumentException: Unknown entity: entity.Usuario
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:223)
at entity.dao.UsuarioJpaController.create(UsuarioJpaController.java:43)
at entity.faces.UsuarioBean.finishAddUser(UsuarioBean.java:33)
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 org.apache.el.parser.AstValue.invoke(AstValue.java:262)
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:70)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
... 27 more
mas a classe Aqi
packageentity;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.Table;@EntitypublicclassUsuarioimplementsjava.io.Serializable{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateIntegerid;privateintidade;privateStringnome;privateStringtelefone;privateStringendereco;publicStringgetEndereco(){returnendereco;}publicvoidsetEndereco(Stringendereco){this.endereco=endereco;}publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}publicintgetIdade(){returnidade;}publicvoidsetIdade(intidade){this.idade=idade;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetTelefone(){returntelefone;}publicvoidsetTelefone(Stringtelefone){this.telefone=telefone;}@OverridepublicinthashCode(){inthash=0;hash+=(id!=null?id.hashCode():0);returnhash;}@Overridepublicbooleanequals(Objectobject){// TODO: Warning - this method won't work in the case the id fields are not setif(!(objectinstanceofUsuario)){returnfalse;}Usuarioother=(Usuario)object;if((this.id==null&&other.id!=null)||(this.id!=null&&!this.id.equals(other.id))){returnfalse;}returntrue;}@OverridepublicStringtoString(){return"entity.Usuario[ id="+id+" ]";}}
ClaudioRamone
coloquei para gerar o codigo automatico agora ele gera o mesmo erro só q na idade
/novousuario.jsp(21,23) '#{usuarioBean.selectedUsuario.idade}' Target Unreachable, identifier 'usuarioBean' resolved to null
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageentity.faces;importentity.Usuario;importentity.dao.UsuarioJpaController;importjavax.faces.bean.ManagedBean;importjavax.faces.bean.SessionScoped;publicclassUsuarioBean{/** Creates a new instance of UsuarioBean */publicUsuarioBean(){}publicUsuarioJpaControllerusuarioDAO=newUsuarioJpaController();publicUsuarioselectedUsuario=newUsuario();publicStringaddUsuario(){selectedUsuario=newUsuario();return"/novousuario";}publicStringfinishAddUser(){usuarioDAO.create(selectedUsuario);return"/welcomeJSF";}publicUsuariogetSelectedUsuario(){returnselectedUsuario;}publicvoidsetSelectedUsuario(UsuarioselectedUsuario){this.selectedUsuario=selectedUsuario;}publicUsuarioJpaControllergetUsuarioDAO(){returnusuarioDAO;}publicvoidsetUsuarioDAO(UsuarioJpaControllerusuarioDAO){this.usuarioDAO=usuarioDAO;}}