Erro 500 (java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity)

5 respostas
R

Pessoal ao clicar no Buttom "Cofirmar" pra gravar no banco de dados ele apresenta um erro 500 reclamando da Entydade NUll (java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity), Alguem me ajuda por favor.

Manager Bean

package secretaria.faces;

import java.util.List;
import secretaria.dao.CadSecretariaDAO;
import secretaria.entidade.CadastrarSecretaria;

public class Secretaria{

    private List<CadastrarSecretaria> cachedCadSecretarias = null;
    private CadSecretariaDAO cadsec = new CadSecretariaDAO();
    private CadastrarSecretaria selectedSecretaria;

    public Secretaria() {
    }

    public List<CadastrarSecretaria> getCachedCadSecretaria() {
        if (cachedCadSecretarias == null){

            cachedCadSecretarias = cadsec.getCadSecretairas();
        }

        return cachedCadSecretarias;
    }

    public String doConfirmaCadSecretaria(){
        selectedSecretaria = new CadastrarSecretaria();
        return "ConfirmarNovoUsuario";
    }

    public String finishConfirmaCadSecretaria(){
       cadsec.addCadastrarSecretaria(selectedSecretaria);
       cachedCadSecretarias = null;
       return "ListCadSecretaria";
    }

    public CadastrarSecretaria getSelectedSecretaria() {
        return selectedSecretaria;
    }

    public void setSelectedSecretaria(CadastrarSecretaria selectedSecretaria) {
        this.selectedSecretaria = selectedSecretaria;
    }



}

Classe DAO

package secretaria.dao;

import java.util.List;
import org.hibernate.Session;
import secretaria.entidade.CadastrarSecretaria;

public class CadSecretariaDAO extends GenericDAO {

    private static final long serialVersionUID=1L;

    private Session session;

    public CadSecretariaDAO(Session session) {
        this.session = session;
    }

    public CadSecretariaDAO() {
        this.session = getSession();
    }

    public int addCadastrarSecretaria(CadastrarSecretaria cad) {
        saveOrUpadatePojo(cad);
        return cad.getCodigosecretaria();
    }

    public void removeCadastrarSecretaria(CadastrarSecretaria cad) {
        removePojo(cad);
    }

    public void upadateCadastrarSecretaria(CadastrarSecretaria cad) {
        saveOrUpadatePojo(cad);
    }

    public CadastrarSecretaria getCadastrarSecretaria(Integer codigosecretaria) {
        CadastrarSecretaria cad = getPojo(CadastrarSecretaria.class, codigosecretaria);
        return cad;

    }

    public List<CadastrarSecretaria> getCadSecretairas(){
        return getPureList(CadastrarSecretaria.class,"from CadastrarSecretaria cad");
    }
}

Classe Entidade (Reclama que não existe uma unidade de persistência)

package secretaria.entidade;

import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.Id;
import javax.persistence.OneToMany;



@Entity
@Table(name = "cadsecretaria")
public class CadastrarSecretaria implements java.io.Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "codigosecretaria", nullable = false)
    @GeneratedValue (strategy= GenerationType.SEQUENCE)
    private Integer codigosecretaria;
    @Column(name = "nome", nullable = false)
    private String nome;
    @Column(name = "status", nullable = false)
    private char status;
    @Column(name = "codoperinc", nullable = false)
    private Integer codoperinc;
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(name = "datainclusao", nullable = false)
    private Date datainclusao;
    @Column(name = "codoperalt", nullable = false)
    private Integer codoperalt;
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(name = "dataalteracao", nullable = false)
    private Date dataalteracao;

   @OneToMany(mappedBy="secretaria", fetch=FetchType.LAZY)
    private List<CadastrarSolicitante> cadastrarSolicitante;

   @OneToMany (mappedBy="sectecnico", fetch=FetchType.LAZY)
   private List<CadastrarTecnico> cadastrarTecnico;

   @OneToMany (mappedBy="cadSecretaria", fetch=FetchType.LAZY)
   private List<CadastrarEquipamento> cadastrarEquipamento;

   
    public Integer getCodigosecretaria() {
        return codigosecretaria;
    }

    public void setCodigosecretaria(Integer codigosecretaria) {
        this.codigosecretaria = codigosecretaria;
    }

   
    public String getNome() {
        return nome;
    }

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

  
    public char getStatus() {
        return status;
    }

    
    public void setStatus(char status) {
        this.status = status;
    }

   
    public Integer getCodoperinc() {
        return codoperinc;
    }

    
    public void setCodoperinc(Integer codoperinc) {
        this.codoperinc = codoperinc;
    }

    public Date getDatainclusao() {
        return datainclusao;
    }

    
    public void setDatainclusao(Date datainclusao) {
        this.datainclusao = datainclusao;
    }

   
    public Integer getCodoperalt() {
        return codoperalt;
    }

   
    public void setCodoperalt(Integer codoperalt) {
        this.codoperalt = codoperalt;
    }

    
    public Date getDataalteracao() {
        return dataalteracao;
    }

    public void setDataalteracao(Date dataalteracao) {
        this.dataalteracao = dataalteracao;
    }

    
    public List<CadastrarSolicitante> getCadastrarSolicitante() {
        return cadastrarSolicitante;
    }

    
    public void setCadastrarSolicitante(List<CadastrarSolicitante> cadastrarSolicitante) {
        this.setCadastrarSolicitante(cadastrarSolicitante);
    }

    
    public List<CadastrarTecnico> getCadastrarTecnico() {
        return cadastrarTecnico;
    }

   
    public void setCadastrarTecnico(List<CadastrarTecnico> cadastrarTecnico) {
        this.setCadastrarTecnico(cadastrarTecnico);
    }

    
    public List<CadastrarEquipamento> getCadastrarEquipamento() {
        return cadastrarEquipamento;
    }

    
    public void setCadastrarEquipamento(List<CadastrarEquipamento> cadastrarEquipamento) {
        this.cadastrarEquipamento = cadastrarEquipamento;
    }

DAO Generic 

[code]package secretaria.dao;

import java.io.Serializable;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import secretaria.entidade.HibernateUtil;

public abstract class GenericDAO {

    public GenericDAO() {
    }

    protected Session getSession() {
        return HibernateUtil.getInstance().getSession();
    }

    protected void saveOrUpadatePojo(Serializable pojo){
        Session ses = getSession();
        ses.saveOrUpdate(pojo);
        ses.getTransaction().commit();
        ses.close();
       }
    protected <T extends Serializable> T getPojo (Class <T> classToSearch, Serializable key) {
        Session ses = getSession();
        Serializable toReturn = (Serializable) ses.get(classToSearch, key);
        ses.getTransaction().commit();
        ses.close();
        return (T) toReturn;
    }

    protected void removePojo (Serializable pojoToRemote){
        Session ses = getSession();
        ses.delete(pojoToRemote);
        ses.getTransaction().commit();
        ses.close();
    }

    protected Serializable getPurePojo(String query, Object... params){
        Session ses = getSession();
        Query qr= ses.createQuery(query);
        for(int i = 1; i <= params.length; i++)
{
            qr.setParameter(1, params[i-1]);
        }

        Object toReturn = qr.uniqueResult();
        ses.getTransaction().commit();
        ses.close();
        return(Serializable) toReturn;
    }

    protected <T extends Serializable> List <T> getPureList(Class <T> classToCast, String query, Object... params){
        Session ses = getSession();
        Query qr= ses.createQuery(query);
        for(int i = 1; i <= params.length; i++)
{
            qr.setParameter(1, params[i-1]);
        }
        @SuppressWarnings("unchecked")
        List <T> toReturn = qr.list();
        ses.getTransaction().commit();
        ses.close();
        return toReturn;
    }
}
}[/code]

Minha pagina XHTML pro cadastro da secretaria.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:ui="http://java.sun.com/jsf/facelets">

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Cadastrar Secretarias</title>
    </head>
    <body title="Cadastrar Secretarias" style="background-color: green">

        <h:panelGrid columns="6">
            <rich:panel>

                <f:facet name="header">
                    <h:outputText value="CADASTROS SECRETARIAS"/>
                </f:facet>

                <a4j:form ajaxSubmit="true" reRender="name">

                    <h:inputText label="nome" size="10" style="width:auto"/>

                    <a4j:commandButton id="incluir" value="Incluir"/>
                    <a4j:commandButton id="alterar" value="Alterar"/>
                    <a4j:commandButton id="deletar" value="Deletar"/>
                    <a4j:commandButton id="consultar" value="Consultar"/>
                    <a4j:commandButton id="confirmar" value="Confirmar" action="#{Secretaria.finishConfirmaCadSecretaria}"/>
                    <a4j:commandButton id="cancelar" value="Cancelar"/>
                    <br/>

                </a4j:form><br></br>
                <h:form>

                    Codigo Secretaria:<h:inputText value="#{Secretaria.selectedSecretaria.codigosecretaria}"/><br/>
                    Nome:<h:inputText value="#{Secretaria.selectedSecretaria.nome}"/><br/>
                    Status <h:selectOneRadio label="Ativo" value="#{Secretaria.selectedSecretaria.status}"/>
                    
                </h:form>
                    
            </rich:panel>
        </h:panelGrid>

    </body>
</html>
HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: #{Secretaria.finishConfirmaCadSecretaria}: java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)


root cause 

javax.faces.FacesException: #{Secretaria.finishConfirmaCadSecretaria}: java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
	javax.faces.component.UICommand.broadcast(UICommand.java:383)
	org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
	org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)


root cause 

javax.faces.el.EvaluationException: java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
	javax.faces.component.UICommand.broadcast(UICommand.java:383)
	org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
	org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)


root cause 

java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
	org.hibernate.event.SaveOrUpdateEvent.<init>(SaveOrUpdateEvent.java:63)
	org.hibernate.event.SaveOrUpdateEvent.<init>(SaveOrUpdateEvent.java:46)
	org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:527)
	org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:523)
	secretaria.dao.GenericDAO.saveOrUpadatePojo(GenericDAO.java:20)
	secretaria.dao.CadSecretariaDAO.addCadastrarSecretaria(CadSecretariaDAO.java:22)
	secretaria.faces.Secretaria.finishConfirmaCadSecretaria(Secretaria.java:31)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:623)
	org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
	javax.faces.component.UICommand.broadcast(UICommand.java:383)
	org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
	org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.24 logs.

5 Respostas

thiago.correa

Você já depurou o seu código para se certificar que o teu objeto selectedSecretaria não é nulo?!

R

Quando depuro o projeto ele constroi normalmente a tela inicial. Ao depurar o managerBeans ele da um erro dizendo que (Não existe um mapeamento de servlet especificado no web.xml para o servlet Secretaria). O que tenho que fazer?

aconstantino

Quando depuro o projeto ele constroi normalmente a tela inicial. Ao depurar o managerBeans ele da um erro dizendo que (Não existe um mapeamento de servlet especificado no web.xml para o servlet Secretaria). O que tenho que fazer?

Tem que mapear o Servlet secretaria :stuck_out_tongue:

R

Quando depuro o projeto ele constroi normalmente a tela inicial. Ao depurar o managerBeans ele da um erro dizendo que (Não existe um mapeamento de servlet especificado no web.xml para o servlet Secretaria). O que tenho que fazer?

Tem que mapear o Servlet secretaria :p

Como que eu faço isso?
A possibilidade de explicar melhor, pois sou iniciante e so tenho vocês do GUJ pra me ajudar aonde moro não tem desenvolvedores em Java.

R
robertinhodf:
Pessoal ao clicar no Buttom "Cofirmar" pra gravar no banco de dados ele apresenta um erro 500 reclamando da Entydade NUll (java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity), Alguem me ajuda por favor.

Manager Bean

package secretaria.faces;

import java.util.List;
import secretaria.dao.CadSecretariaDAO;
import secretaria.entidade.CadastrarSecretaria;

public class Secretaria{

    private List<CadastrarSecretaria> cachedCadSecretarias = null;
    private CadSecretariaDAO cadsec = new CadSecretariaDAO();
    private CadastrarSecretaria selectedSecretaria;

    public Secretaria() {
    }

    public List<CadastrarSecretaria> getCachedCadSecretaria() {
        if (cachedCadSecretarias == null){

            cachedCadSecretarias = cadsec.getCadSecretairas();
        }

        return cachedCadSecretarias;
    }

    public String doConfirmaCadSecretaria(){
        selectedSecretaria = new CadastrarSecretaria();
        return "ConfirmarNovoUsuario";
    }

    public String finishConfirmaCadSecretaria(){
       cadsec.addCadastrarSecretaria(selectedSecretaria);
       cachedCadSecretarias = null;
       return "ListCadSecretaria";
    }

    public CadastrarSecretaria getSelectedSecretaria() {
        return selectedSecretaria;
    }

    public void setSelectedSecretaria(CadastrarSecretaria selectedSecretaria) {
        this.selectedSecretaria = selectedSecretaria;
    }



}

Classe DAO

package secretaria.dao;

import java.util.List;
import org.hibernate.Session;
import secretaria.entidade.CadastrarSecretaria;

public class CadSecretariaDAO extends GenericDAO {

    private static final long serialVersionUID=1L;

    private Session session;

    public CadSecretariaDAO(Session session) {
        this.session = session;
    }

    public CadSecretariaDAO() {
        this.session = getSession();
    }

    public int addCadastrarSecretaria(CadastrarSecretaria cad) {
        saveOrUpadatePojo(cad);
        return cad.getCodigosecretaria();
    }

    public void removeCadastrarSecretaria(CadastrarSecretaria cad) {
        removePojo(cad);
    }

    public void upadateCadastrarSecretaria(CadastrarSecretaria cad) {
        saveOrUpadatePojo(cad);
    }

    public CadastrarSecretaria getCadastrarSecretaria(Integer codigosecretaria) {
        CadastrarSecretaria cad = getPojo(CadastrarSecretaria.class, codigosecretaria);
        return cad;

    }

    public List<CadastrarSecretaria> getCadSecretairas(){
        return getPureList(CadastrarSecretaria.class,"from CadastrarSecretaria cad");
    }
}

Classe Entidade (Reclama que não existe uma unidade de persistência)

package secretaria.entidade;

import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.Id;
import javax.persistence.OneToMany;



@Entity
@Table(name = "cadsecretaria")
public class CadastrarSecretaria implements java.io.Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "codigosecretaria", nullable = false)
    @GeneratedValue (strategy= GenerationType.SEQUENCE)
    private Integer codigosecretaria;
    @Column(name = "nome", nullable = false)
    private String nome;
    @Column(name = "status", nullable = false)
    private char status;
    @Column(name = "codoperinc", nullable = false)
    private Integer codoperinc;
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(name = "datainclusao", nullable = false)
    private Date datainclusao;
    @Column(name = "codoperalt", nullable = false)
    private Integer codoperalt;
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(name = "dataalteracao", nullable = false)
    private Date dataalteracao;

   @OneToMany(mappedBy="secretaria", fetch=FetchType.LAZY)
    private List<CadastrarSolicitante> cadastrarSolicitante;

   @OneToMany (mappedBy="sectecnico", fetch=FetchType.LAZY)
   private List<CadastrarTecnico> cadastrarTecnico;

   @OneToMany (mappedBy="cadSecretaria", fetch=FetchType.LAZY)
   private List<CadastrarEquipamento> cadastrarEquipamento;

   
    public Integer getCodigosecretaria() {
        return codigosecretaria;
    }

    public void setCodigosecretaria(Integer codigosecretaria) {
        this.codigosecretaria = codigosecretaria;
    }

   
    public String getNome() {
        return nome;
    }

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

  
    public char getStatus() {
        return status;
    }

    
    public void setStatus(char status) {
        this.status = status;
    }

   
    public Integer getCodoperinc() {
        return codoperinc;
    }

    
    public void setCodoperinc(Integer codoperinc) {
        this.codoperinc = codoperinc;
    }

    public Date getDatainclusao() {
        return datainclusao;
    }

    
    public void setDatainclusao(Date datainclusao) {
        this.datainclusao = datainclusao;
    }

   
    public Integer getCodoperalt() {
        return codoperalt;
    }

   
    public void setCodoperalt(Integer codoperalt) {
        this.codoperalt = codoperalt;
    }

    
    public Date getDataalteracao() {
        return dataalteracao;
    }

    public void setDataalteracao(Date dataalteracao) {
        this.dataalteracao = dataalteracao;
    }

    
    public List<CadastrarSolicitante> getCadastrarSolicitante() {
        return cadastrarSolicitante;
    }

    
    public void setCadastrarSolicitante(List<CadastrarSolicitante> cadastrarSolicitante) {
        this.setCadastrarSolicitante(cadastrarSolicitante);
    }

    
    public List<CadastrarTecnico> getCadastrarTecnico() {
        return cadastrarTecnico;
    }

   
    public void setCadastrarTecnico(List<CadastrarTecnico> cadastrarTecnico) {
        this.setCadastrarTecnico(cadastrarTecnico);
    }

    
    public List<CadastrarEquipamento> getCadastrarEquipamento() {
        return cadastrarEquipamento;
    }

    
    public void setCadastrarEquipamento(List<CadastrarEquipamento> cadastrarEquipamento) {
        this.cadastrarEquipamento = cadastrarEquipamento;
    }

DAO Generic 

[code]package secretaria.dao;

import java.io.Serializable;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import secretaria.entidade.HibernateUtil;

public abstract class GenericDAO {

    public GenericDAO() {
    }

    protected Session getSession() {
        return HibernateUtil.getInstance().getSession();
    }

    protected void saveOrUpadatePojo(Serializable pojo){
        Session ses = getSession();
        ses.saveOrUpdate(pojo);
        ses.getTransaction().commit();
        ses.close();
       }
    protected <T extends Serializable> T getPojo (Class <T> classToSearch, Serializable key) {
        Session ses = getSession();
        Serializable toReturn = (Serializable) ses.get(classToSearch, key);
        ses.getTransaction().commit();
        ses.close();
        return (T) toReturn;
    }

    protected void removePojo (Serializable pojoToRemote){
        Session ses = getSession();
        ses.delete(pojoToRemote);
        ses.getTransaction().commit();
        ses.close();
    }

    protected Serializable getPurePojo(String query, Object... params){
        Session ses = getSession();
        Query qr= ses.createQuery(query);
        for(int i = 1; i <= params.length; i++)
{
            qr.setParameter(1, params[i-1]);
        }

        Object toReturn = qr.uniqueResult();
        ses.getTransaction().commit();
        ses.close();
        return(Serializable) toReturn;
    }

    protected <T extends Serializable> List <T> getPureList(Class <T> classToCast, String query, Object... params){
        Session ses = getSession();
        Query qr= ses.createQuery(query);
        for(int i = 1; i <= params.length; i++)
{
            qr.setParameter(1, params[i-1]);
        }
        @SuppressWarnings("unchecked")
        List <T> toReturn = qr.list();
        ses.getTransaction().commit();
        ses.close();
        return toReturn;
    }
}
}[/code]

Minha pagina XHTML pro cadastro da secretaria.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:ui="http://java.sun.com/jsf/facelets">

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Cadastrar Secretarias</title>
    </head>
    <body title="Cadastrar Secretarias" style="background-color: green">

        <h:panelGrid columns="6">
            <rich:panel>

                <f:facet name="header">
                    <h:outputText value="CADASTROS SECRETARIAS"/>
                </f:facet>

                <a4j:form ajaxSubmit="true" reRender="name">

                    <h:inputText label="nome" size="10" style="width:auto"/>

                    <a4j:commandButton id="incluir" value="Incluir"/>
                    <a4j:commandButton id="alterar" value="Alterar"/>
                    <a4j:commandButton id="deletar" value="Deletar"/>
                    <a4j:commandButton id="consultar" value="Consultar"/>
                    <a4j:commandButton id="confirmar" value="Confirmar" action="#{Secretaria.finishConfirmaCadSecretaria}"/>
                    <a4j:commandButton id="cancelar" value="Cancelar"/>
                    <br/>

                </a4j:form><br></br>
                <h:form>

                    Codigo Secretaria:<h:inputText value="#{Secretaria.selectedSecretaria.codigosecretaria}"/><br/>
                    Nome:<h:inputText value="#{Secretaria.selectedSecretaria.nome}"/><br/>
                    Status <h:selectOneRadio label="Ativo" value="#{Secretaria.selectedSecretaria.status}"/>
                    
                </h:form>
                    
            </rich:panel>
        </h:panelGrid>

    </body>
</html>
HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: #{Secretaria.finishConfirmaCadSecretaria}: java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)


root cause 

javax.faces.FacesException: #{Secretaria.finishConfirmaCadSecretaria}: java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
	javax.faces.component.UICommand.broadcast(UICommand.java:383)
	org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
	org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)


root cause 

javax.faces.el.EvaluationException: java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
	javax.faces.component.UICommand.broadcast(UICommand.java:383)
	org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
	org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)


root cause 

java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity
	org.hibernate.event.SaveOrUpdateEvent.<init>(SaveOrUpdateEvent.java:63)
	org.hibernate.event.SaveOrUpdateEvent.<init>(SaveOrUpdateEvent.java:46)
	org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:527)
	org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:523)
	secretaria.dao.GenericDAO.saveOrUpadatePojo(GenericDAO.java:20)
	secretaria.dao.CadSecretariaDAO.addCadastrarSecretaria(CadSecretariaDAO.java:22)
	secretaria.faces.Secretaria.finishConfirmaCadSecretaria(Secretaria.java:31)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:623)
	org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
	com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
	javax.faces.component.UICommand.broadcast(UICommand.java:383)
	org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
	org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.24 logs.

Teste na Entity CadastrarSecretaria resultado do teste. Alguem pode me ajudar?

addCadastrarSecretaria
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
getCadastrarSecretaria
upadateCadastrarSecretaria
removeCadastrarSecretaria
Criado 30 de março de 2010
Ultima resposta 3 de abr. de 2010
Respostas 5
Participantes 3