Erro de Cadastro Simples

8 respostas
ClaudioRamone

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.
 */
package entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;


@Entity
//@Table(name="usuarios")
public class Usuario implements java.io.Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
    private int idade ;
    private String nome;
    private String telefone;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }


        @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Usuario)) {
            return false;
        }
        Usuario other = (Usuario) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entity.Usuario[ id=" + id + " ]";
    }
    
}

8 Respostas

dreampeppers99

Sem pensar muito a sua view novousuario.jsp está referenciando uma propriedade [selectedUsuario] no seu managed bean [usuarioBean] que não existe.

ClaudioRamone

Mas aqi ela no managedBean

import entity.Usuario;
import entity.dao.UsuarioJpaController;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class UsuarioBean {

     public UsuarioBean() {
    }
      public UsuarioJpaController usuarioDAO = new UsuarioJpaController();
    public Usuario selectedUsuario;
    
    public String addUsuario(){
    
    selectedUsuario = new Usuario();
    return "/novousuario";
    
    }
       public String finishAddUser(){
        usuarioDAO.create(selectedUsuario);
        return "/welcomeJSF";  
    }

    public Usuario getSelectedUsuario() {
        return selectedUsuario;
    }

    public void setSelectedUsuario(Usuario selectedUsuario) {
        this.selectedUsuario = selectedUsuario;
    }

    public UsuarioJpaController getUsuarioDAO() {
        return usuarioDAO;
    }

    public void setUsuarioDAO(UsuarioJpaController usuarioDAO) {
        this.usuarioDAO = usuarioDAO;
    }
}
danieldomingues86

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.
 */
package faces;

import entity.HibernateUtil;
import entity.Usuario;
import entity.dao.UsuarioJpaController;
import java.util.List;
import javax.management.Query;

/**
 *
 * @author Claudio
 */
public class UsuarioFace {

    /** Creates a new instance of UsuarioFace */
    public UsuarioFace() {
    }
     
   public UsuarioJpaController userDAO = new UsuarioJpaController();
   public Usuario selectedUser;   
  
       
    public String doAddUser(){
        selectedUser = new Usuario();
        return "gotoAddNewUser";  
    
    }
    public String finishAddUser(){
        userDAO.create(selectedUser);
          return "teste";  
    
    
    }

    public Usuario getSelectedUser() {
        return selectedUser;
    }

    public void setSelectedUser(Usuario selectedUser) {
        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

package entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;


@Entity
public class Usuario implements java.io.Serializable{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
    private int idade;
    private String nome;
    private String telefone;
    private String endereco;

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }
    
    
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }


        @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Usuario)) {
            return false;
        }
        Usuario other = (Usuario) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        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
org.apache.jasper.el.JspPropertyNotFoundException: /novousuario.jsp(21,23) '#{usuarioBean.selectedUsuario.idade}' Target Unreachable, identifier 'usuarioBean' resolved to 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)

+- Component Tree
<UIViewRoot id="j_id_jsp_354989249_0" inView="true" locale="pt_BR" renderKitId="HTML_BASIC" rendered="true" transient="false" viewId="/novousuario.jsp">
<HtmlOutputText escape="true" id="j_id_jsp_354989249_1" inView="true" rendered="true" transient="false" value="Novo Usuario"/>
<HtmlForm enctype="application/x-www-form-urlencoded" id="j_id_jsp_354989249_2" inView="true" prependId="true" rendered="true" submitted="true" transient="false">
<HtmlInputText disabled="false" id="j_id_jsp_354989249_3" immediate="false" inView="true" localValueSet="false" maxlength="-[telefone removido]" readonly="false" rendered="true" required="false" size="40" submittedValue="23" transient="false" valid="true"/>
<HtmlInputText disabled="false" id="j_id_jsp_354989249_4" immediate="false" inView="true" localValueSet="false" maxlength="-[telefone removido]" readonly="false" rendered="true" required="false" size="40" submittedValue="tete" transient="false" valid="true"/>
<HtmlInputText disabled="false" id="j_id_jsp_354989249_5" immediate="false" inView="true" localValueSet="false" maxlength="-[telefone removido]" readonly="false" rendered="true" required="false" size="40" submittedValue="333333" transient="false" valid="true"/>
<HtmlInputText disabled="false" id="j_id_jsp_354989249_6" immediate="false" inView="true" localValueSet="false" maxlength="-[telefone removido]" readonly="false" rendered="true" required="false" size="40" submittedValue="drdrdrd" transient="false" valid="true"/>
<HtmlCommandButton action="usuario.faces" actionExpression="usuario.faces" disabled="false" id="j_id_jsp_354989249_7" immediate="false" inView="true" readonly="false" rendered="true" transient="false" type="submit" value="Cancelar"/>
<HtmlCommandButton action="#{usuarioBean.finishAddUser()}" actionExpression="#{usuarioBean.finishAddUser()}" disabled="false" id="j_id_jsp_354989249_8" immediate="false" inView="true" readonly="false" rendered="true" transient="false" type="submit" value="Add Usuario"/>
<HtmlCommandLink action="welcomeJSF.faces" actionExpression="welcomeJSF.faces" disabled="false" id="j_id_jsp_354989249_9" immediate="false" inView="true" rendered="true" transient="false" value="HOME"/>
</HtmlForm>
</UIViewRoot>

Meu ManagedBean

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entity.faces;

import entity.Usuario;
import entity.dao.UsuarioJpaController;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

public class UsuarioBean {

    /** Creates a new instance of UsuarioBean */
    public UsuarioBean() {
    }
      public UsuarioJpaController usuarioDAO = new UsuarioJpaController();
    public Usuario selectedUsuario = new Usuario();
    
    public String addUsuario(){
    
    selectedUsuario = new Usuario();
    return "/novousuario";
    
    }
       public String finishAddUser(){
        usuarioDAO.create(selectedUsuario);
            return "/welcomeJSF";  
    }

    public Usuario getSelectedUsuario() {
        return selectedUsuario;
    }

    public void setSelectedUsuario(Usuario selectedUsuario) {
        this.selectedUsuario = selectedUsuario;
    }

    public UsuarioJpaController getUsuarioDAO() {
        return usuarioDAO;
    }

    public void setUsuarioDAO(UsuarioJpaController usuarioDAO) {
        this.usuarioDAO = usuarioDAO;
    }
}
Criado 18 de junho de 2011
Ultima resposta 20 de jun. de 2011
Respostas 8
Participantes 3