[RESOLVIDO] Exception when handling error trying to reset the response

Bom dia pessoal,

Sou voco no Java e estou desenvolvendo uma aplicação para controle de demanda.
Fiz uma classe Demanda, uma DemandaBM a classe DemandaDao.
O formulário que fuica no xhtml eu tenho calendarios, combos e caixa de textos.
O método que faz a persistência no banco (MySql) chama-se gravarDemanda e é acionado por um commandbutton.
Quando starto a aplicação aparece o erro abaixo:

Grave: Error Rendering View[/pages/index.xhtml]
javax.el.PropertyNotFoundException: Property 'gravar' not found on type br.com.bb.uro.AgendaControleDemandas.MB.DemandaMB
    at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:229)
    at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:206)
    at javax.el.BeanELResolver.property(BeanELResolver.java:317)
   
Jun 13, 2016 12:18:52 PM com.sun.faces.context.ExceptionHandlerImpl throwIt
Informações: Exception when handling error trying to reset the response.
javax.el.PropertyNotFoundException: Property 'gravar' not found on type br.com.bb.uro.AgendaControleDemandas.MB.DemandaMB
    at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:229)
    at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:206)
    at javax.el.BeanELResolver.property(BeanELResolver.java:317)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:85)
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
    at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
    
javax.servlet.ServletException: Property 'gravar' not found on type br.com.bb.uro.AgendaControleDemandas.MB.DemandaMB
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
   
Caused by: javax.el.PropertyNotFoundException: Property 'gravar' not found on type br.com.bb.uro.AgendaControleDemandas.MB.DemandaMB
    at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:229)
    at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:206)
    at javax.el.BeanELResolver.property(BeanELResolver.java:317)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:85)
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
    at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
   
Jun 13, 2016 12:18:52 PM org.apache.catalina.core.StandardWrapperValve invoke
Grave: Servlet.service() for servlet [FacesServlet] in context with path [/AgendaControleDemandas] threw exception [javax.servlet.ServletException: Property 'gravar' not found on type br.com.bb.uro.AgendaControleDemandas.MB.DemandaMB] with root cause
javax.el.PropertyNotFoundException: Property 'gravar' not found on type br.com.bb.uro.AgendaControleDemandas.MB.DemandaMB
    at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:229)
    at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:206)
    at javax.el.BeanELResolver.property(BeanELResolver.java:317)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:85)
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
    at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:183)
   
// Tirei parte do final dor erros para diminuir o post

Demanda

import java.io.Serializable;
import java.util.Calendar;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
// @Cacheable(false)
@Table(name = "tblDemanda")
// @NamedQuery(name = "Demanda.findAll", query = "select d from tblDemanda")
public class Demanda implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public static final String FIND_ID = "Demanda.findId";

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String descricao;
    private Integer finalizado;
    private Integer idTipoDemanda;
    private Integer idStatus;
    @Temporal(TemporalType.DATE)
    private Calendar dataInicio;
    @Temporal(TemporalType.DATE)
    private Calendar dataVencimento;
    @Temporal(TemporalType.DATE)
    private Calendar dataAtendimento;
    private Integer prazo;
    private Integer idAssessor;
    private Integer idGerente;

// Getters e Setterr foram tirados para diminuir o post

DemandaDAO

package br.com.bb.uro.AgendaControleDemandas.DAO;

import java.io.Serializable;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import br.com.bb.uro.AgendaControleDemandas.modelo.Demanda;

public class DemandaDAO implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private transient  Connection connection;

    public DemandaDAO() {
        this.connection = new ConectionFactory().Conecta();
    }
    
    // Datas
    Calendar data = Calendar.getInstance();

    // LISTA DEMANDA
    public List<Demanda> getLista() {

        try {
            List<Demanda> demandas = new ArrayList<Demanda>();
            PreparedStatement  stmt = connection
                    .prepareStatement("SELECT * FROM tblDemanda");
            ResultSet rs = stmt.executeQuery();

            while (rs.next()) {
                Demanda demanda = new Demanda();

                demanda.setIdStatus(rs.getInt("idStatus"));
                demanda.setIdTipoDemanda(rs.getInt("idTipoDemanda"));
                
                //dataInicio
                data.setTime(rs.getDate("dataInicio"));
                demanda.setDataInicio(data);
                //dataVencimento
                data.setTime(rs.getDate("dataVencimento"));
                demanda.setDataVencimento(data);
                //dataAtendimento
                data.setTime(rs.getDate("dataAtendimento"));
                demanda.setDataAtendimento(data);
                
                
//                demanda.setDataInicio(rs.getDate("dataInicio"));
//                demanda.setDataVencimento(rs.getDate("dataVencimento"));
//                demanda.setDataAtendimento(rs.getDate("dataAtendimento"));

                demanda.setDescricao(rs.getString("descricao"));
                demanda.setFinalizado(rs.getInt("finalizado"));
                demanda.setIdAssessor(rs.getInt("idAssessor"));
                demanda.setIdGerente(rs.getInt("idGerente"));
                demanda.setPrazo(rs.getInt("prazo"));
                demanda.setId(rs.getLong("id"));

                demandas.add(demanda);
            }
            rs.close();
            stmt.close();
            return demandas;

        } catch (SQLException u) {
            throw new RuntimeException(u);
        }
    }

    // ADICIONA ALTERA
    public void altera(Demanda demanda) {

        String sql = "UPDATE  tblDemanda SET idStatus=?, idTipoDemanda=?, dataInicio=?, dataVencimento=?, dataAtendimento=?,  Descricao=?, Finalizado=?, idAssessor=?, idGerente=?, Prazo=? WHERE iD=?";

        try {
            PreparedStatement stmt = connection.prepareStatement(sql);

            stmt.setInt(1, demanda.getIdStatus());
            stmt.setInt(2, demanda.getIdTipoDemanda());            
            
            stmt.setDate(3, new Date(demanda.getDataInicio().getTimeInMillis()));
            stmt.setDate(3, new Date(demanda.getDataVencimento().getTimeInMillis()));
            stmt.setDate(3, new Date(demanda.getDataAtendimento().getTimeInMillis()));
            
            stmt.setString(6, demanda.getDescricao());
            stmt.setInt(7, demanda.getFinalizado());
            stmt.setInt(8, demanda.getIdAssessor());
            stmt.setInt(9, demanda.getIdGerente());
            stmt.setInt(10, demanda.getPrazo());
            stmt.setLong(11, demanda.getId());

            stmt.execute();
            stmt.close();

        } catch (SQLException u) {
            throw new RuntimeException(u);
        }
    }

    // EXCLUI DEMANDA
    public void exclui(Demanda demanda) {

        String sql = "DELETE FROM tblDemanda WHERE id=?";

        try {
            PreparedStatement stmt = connection.prepareStatement(sql);

            stmt.setLong(1, demanda.getId());

            stmt.execute();
            stmt.close();

        } catch (SQLException u) {
            throw new RuntimeException(u);
        }
    }

    // ADICIONA DEMANDA
    public void adiciona(Demanda demanda) {

        String sql = "INSERT INTO tblDemanda  (idStatus, idTipoDemanda, dataInicio, dataVencimento, dataAtendimento,  Descricao, Finalizado, idAssessor, idGerente, Prazo)  VALUES(?,?,?,?,?,?,?,?,?,?)";

        try {
            PreparedStatement stmt = connection.prepareStatement(sql);

            stmt.setInt(1, demanda.getIdStatus());
            stmt.setInt(2, demanda.getIdTipoDemanda());
            
            stmt.setDate(3, new Date(demanda.getDataInicio().getTimeInMillis()));
            stmt.setDate(3, new Date(demanda.getDataVencimento().getTimeInMillis()));
            stmt.setDate(3, new Date(demanda.getDataAtendimento().getTimeInMillis()));
            
            stmt.setString(6, demanda.getDescricao());
            stmt.setInt(7, demanda.getFinalizado());
            stmt.setInt(8, demanda.getIdAssessor());
            stmt.setInt(9, demanda.getIdGerente());
            stmt.setInt(10, demanda.getPrazo());

            stmt.execute();
            stmt.close();

        } catch (SQLException u) {
            throw new RuntimeException(u);
        }
    }

}

DemandaMD


package br.com.bb.uro.AgendaControleDemandas.MB;

import java.util.Calendar;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.joda.time.DateTime;
import org.joda.time.Duration;

import br.com.bb.uro.AgendaControleDemandas.DAO.DemandaDAO;
import br.com.bb.uro.AgendaControleDemandas.DAO.FuncionarioDAO;
import br.com.bb.uro.AgendaControleDemandas.DAO.StatusDAO;
import br.com.bb.uro.AgendaControleDemandas.DAO.TipoDemandaDAO;
import br.com.bb.uro.AgendaControleDemandas.modelo.Demanda;
import br.com.bb.uro.AgendaControleDemandas.modelo.Funcionario;
import br.com.bb.uro.AgendaControleDemandas.modelo.Status;
import br.com.bb.uro.AgendaControleDemandas.modelo.TipoDemanda;

@SessionScoped
@ManagedBean(name = "demanda")
public class DemandaMB {

    private List<Status> listaStatus;
    private List<TipoDemanda> listaTipoDemanda;
    private List<Funcionario> listaFunci;
    private List<Funcionario> listaFunciDivisao;
    private List<Funcionario> listaAssessor;
    private List<Funcionario> listaGerente;

    private DateTime dtInicial;
    private DateTime dtFinal;
    private Integer qtdDias;

    // Variáveis da página
    private String descricao;
    private Boolean finalizado;
    private Integer idTipo;
    private Integer idStatus;
    private Calendar dataInicio;
    private Calendar dataVencimento;
    private Calendar dataAtendimento;
    private Integer prazo = 10;
    private Integer idAssessor;
    private Integer idGerente;

    // GRAVAR DADOS
    public void gravarDemanda() {
        
        Demanda demanda = new Demanda();
        DemandaDAO demandaDAO = new DemandaDAO();
    
        System.out.println("inicia gravar ");

        Integer intFinalizado;
        if (finalizado = true) {
            intFinalizado = 1;
        } else {
            intFinalizado = 0;
        }

        demanda.setIdStatus(idStatus);
        demanda.setIdTipoDemanda(idTipo);
        // Datas
        demanda.setDataInicio(getDataInicio());
        demanda.setDataVencimento(getDataVencimento());
        demanda.setDataAtendimento(getDataAtendimento());

        demanda.setFinalizado(intFinalizado);
        demanda.setPrazo(prazo);
        demanda.setIdAssessor(idAssessor);
        demanda.setIdGerente(idGerente);
        demanda.setDescricao(descricao);
        
        System.out.println("preencheu objeto e vai gravar");

        demandaDAO.adiciona(demanda);

        System.out.println("voltou da gravação");

    }

    // Preenche combos
    public void funciDivisao() {
        FuncionarioDAO dao = new FuncionarioDAO();
        listaFunci = dao.getListaFunciDivisao(this.getIdGerente());
        ;
        this.getListaFunciDivisao();
    }

    public List<Funcionario> getListaFunciDivisao() {
        FuncionarioDAO dao = new FuncionarioDAO();
        listaFunciDivisao = dao.getListaFunciDivisao(this.getIdGerente());
        return listaFunciDivisao;
    }

    public List<Status> getListaStatus() {
        StatusDAO dao = new StatusDAO();
        listaStatus = dao.getLista();
        return listaStatus;
    }

    public List<TipoDemanda> getListaTipoDemanda() {
        TipoDemandaDAO dao = new TipoDemandaDAO();
        listaTipoDemanda = dao.getLista();
        return listaTipoDemanda;
    }

    public List<Funcionario> getListaFunci() {
        FuncionarioDAO dao = new FuncionarioDAO();
        listaFunci = dao.getLista();
        return listaFunci;
    }

    public List<Funcionario> getListaAssessor() {
        FuncionarioDAO dao = new FuncionarioDAO();
        listaAssessor = dao.getListaAssessor();
        return listaAssessor;
    }

    public List<Funcionario> getListaGerente() {
        FuncionarioDAO dao = new FuncionarioDAO();
        listaGerente = dao.getListaGerente();
        return listaGerente;
    }

    @SuppressWarnings("unused")
    private Integer DiasEntreDatas() {
        Duration dur = new Duration(dtInicial, dtFinal);
        qtdDias = (int) dur.getStandardDays();
        return qtdDias;
    }

    public DateTime getDtInicial() {
        return dtInicial;
    }

    public void setDtInicial(DateTime dtInicial) {
        this.dtInicial = dtInicial;
    }

    public DateTime getDtFinal() {
        return dtFinal;
    }

    public void setDtFinal(DateTime dtFinal) {
        this.dtFinal = dtFinal;
    }

    public Integer getQtdDias() {
        return qtdDias;
    }

    public void setQtdDias(Integer qtdDias) {
        this.qtdDias = qtdDias;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Boolean getFinalizado() {
        return finalizado;
    }

    public void setFinalizado(Boolean finalizado) {
        this.finalizado = finalizado;
    }

    public Integer getIdTipo() {
        return idTipo;
    }

    public void setIdTipo(Integer idTipo) {
        this.idTipo = idTipo;
    }

    public Integer getIdStatus() {
        return idStatus;
    }

    public void setIdStatus(Integer idStatus) {
        this.idStatus = idStatus;
    }

    public Calendar getDataInicio() {
        return dataInicio;
    }

    public void setDataInicio(Calendar dataInicio) {
        this.dataInicio = dataInicio;
    }

    public Calendar getDataVencimento() {
        return dataVencimento;
    }

    public void setDataVencimento(Calendar dataVencimento) {
        this.dataVencimento = dataVencimento;
    }

    public Calendar getDataAtendimento() {
        return dataAtendimento;
    }

    public void setDataAtendimento(Calendar dataAtendimento) {
        this.dataAtendimento = dataAtendimento;
    }

    public Integer getPrazo() {
        return prazo;
    }

    public void setPrazo(Integer prazo) {
        this.prazo = prazo;
    }

    public Integer getIdAssessor() {
        return idAssessor;
    }

    public void setIdAssessor(Integer idAssessor) {
        this.idAssessor = idAssessor;
    }

    public Integer getIdGerente() {
        return idGerente;
    }

    public void setIdGerente(Integer idGerente) {
        this.idGerente = idGerente;
    }
}

xhtml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Agenda de Cadastro de Demandas</title>
    <link rel="stylesheet" href="../css/style.css" />
    <link rel="stylesheet" href="../css/stylepage.css" />
    <link rel="stylesheet" href="../css/styleform.css" />
<!-- 
    <link rel="stylesheet"
        href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
    <script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
 -->
    <script>
        $(function() {
            $("#tabs").tabs();
        });
    </script>

</h:head>
<ui:composition template="template.xhtml">
            <ui:define name="pageTitle">Agenda de Controle de Demandas</ui:define>
            <ui:define name="pageHeader">Cadastro de Demandas</ui:define>
            <ui:define name="body">
    <div id="cabecalho">
        <div id="lateral_base">
            <div id="topo_base">
                <div id="titulo">
                    <a href="https://uro.bb.com.br"></a>
                </div>
            </div>
            <div id="topo">
                <div id="topo_menu">
                    <ul>
                        <li><a
                            href="https://portal.intranet.bb.com.br/wps/myportal/intranet">Intranet</a></li>
                        <li><a
                            href="https://login.intranet.bb.com.br/distAuth/UI/Logout">Sair</a></li>
                    </ul>
                </div>
                <div id="topo_menu2">
                    Agenda de Cadastro de Demandas<label style="float: right;">#confidencial</label>
                </div>
            </div>
        </div>
    </div>
    <div id="tabs" class="container" align="left" style="">
        <ul>
            <li><a href="#tabs-1">Cadastrar</a></li>
            <li><a href="#tabs-2">Consultar</a></li>
            <li><a href="#tabs-3">Alterar</a></li>
        </ul>
        <div id="tabs-1">

            <h:form id="form">
                <div align="left">

                    <h:panelGrid columns="2" style="margin-bottom:10px"
                        cellpadding="10" align="left">

                        <p:outputLabel id="label-status" for="status" value="Status:" />
                        <p:selectOneMenu id="status" value="#{demanda.idStatus}" style="width:150px">
                            <f:selectItem itemLabel="Sel..." itemValue=""
                                noSelectionOption="true" />
                            <f:selectItems value="#{demanda.listaStatus}" var="lista"
                                itemLabel="#{lista.status}" itemValue="#{lista.id}" />
                        </p:selectOneMenu>

                        <p:outputLabel id="label-tipo" for="tipo" value="Tipo:" />
                        <p:selectOneMenu id="tipo" value="#{demanda.idTipo}"
                            style="width:150px">
                            <f:selectItem itemLabel="Sel..." itemValue=""
                                noSelectionOption="true" />
                            <f:selectItems value="#{demanda.listaTipoDemanda}" var="lista"
                                itemLabel="#{lista.tipoDemanda}" itemValue="#{lista.id}" />
                        </p:selectOneMenu>

                        <p:outputLabel id="label-inicio" for="inicio"
                            value="Data de Início:" />
                        <p:calendar id="inicio" showOn="button" effect="slide"
                            pattern="dd/MM/yyyy" showButtonPanel="false"
                            showOtherMonths="true" showWeek="false" navigator="true"
                            styleClass="emissao" locale="pt" value="#{demanda.dataInicio}" />

                        <p:outputLabel id="label-vencimento" for="vencimento"
                            value="Data de Vencimento" />
                        <p:calendar id="vencimento" showOn="button" effect="slide"
                            pattern="dd/MM/yyyy" showButtonPanel="false"
                            showOtherMonths="true" showWeek="false" navigator="true"
                            styleClass="vencimento" locale="pt"
                            value="#{demanda.dataVencimento}" />

                        <p:outputLabel id="label-atendimento" for="atendimento"
                            value="Data para Atendimento" />
                        <p:calendar id="atendimento" showOn="button" effect="slide"
                            pattern="dd/MM/yyyy" showButtonPanel="false"
                            showOtherMonths="true" showWeek="false" navigator="true"
                            styleClass="atendimento" locale="pt"
                            value="#{demanda.dataAtendimento}" />

                        <p:outputLabel id="label-finalizado" for="finalizado"
                            value="Finalizado:" />
                        <p:selectBooleanButton id="finalizado" onLabel="Sim"
                            offLabel="Não" style="width:60px" value="#{demanda.finalizado}" />

                        <p:outputLabel id="label-gerente" for="gerente" value="Gerente:" />
                        <p:selectOneMenu id="gerente" value="#{demanda.idGerente}"
                            style="width:300px">
                            <f:selectItem itemLabel="Sel..." itemValue=""
                                noSelectionOption="true" />
                            <f:selectItems value="#{demanda.listaGerente}" var="lista"
                                itemLabel="#{lista.nome}" itemValue="#{lista.id}" />
                            <p:ajax event="change" listener="#{demanda.funciDivisao}"
                                update=":form:assessor" />
                        </p:selectOneMenu>

                        <p:outputLabel id="label-assessor" for="assessor"
                            value="Assessor:" />
                        <p:selectOneMenu id="assessor" value="#{demanda.idAssessor}"
                            style="width:300px">
                            <f:selectItem itemLabel="Sel..." itemValue=""
                                noSelectionOption="true" />
                            <f:selectItems var="lista" value="#{demanda.listaFunciDivisao}"
                                itemLabel="#{lista.nome}" itemValue="#{lista.id}" />
                        </p:selectOneMenu>

                        <p:outputLabel id="label-descricao" for="descricao"
                            value="Descrição:" />
                        <p:inputTextarea id="descricao" cols="100" rows="10"
                            value="#{demanda.descricao}" />

                    </h:panelGrid>
 
                    <p:commandButton styleClass="botaogravar" id="botaoGravar" value="Gravar" actionListener="#{demanda.gravarDemanda}"/>
                    
                </div>
                
                

            </h:form>
        </div>
        <div id="tabs-2">
            <p>Consultar.</p>
        </div>
        <div id="tabs-3">
            <p>Alterar.</p>
        </div>
    </div>

</ui:define>
    </ui:composition>
</html>

Algém pode me ajudar? Estou desesperado e não sei mais o que fazer, já pesquisei em meio mundo de forum e nada.

Tente mudando o botão que grava para:

<p:commandButton styleClass="botaogravar" id="botaoGravar" value="Gravar" action="#{demanda.gravarDemanda()}"/>

Obrigado, funcionou. Estava faltando os ().