Erro ao confirmar os dados no banco "#{Secretaria.finishConfirmaCadSecretaria}: java.lang.NullPointe

3 respostas
R

Boa Tarde Galera,

Sou iniciante estou ultilizando (Netbeans, JSF, Hibernate, Facelets e Postgres).

Na página cadastrar digito todos os valores nos campos ao clicar no buttom "Confirmar", pra inserir os dados no banco dar erro 500 o que devo fazer?

[img]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.NullPointerException
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 [/img]

As classes ultilizadas no projeto encontra- se abaixo:

CÓDIGO DAO (CADSECRETARIADAO)

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) throws Exception{
    CadastrarSecretaria cad = getPojo(CadastrarSecretaria.class, codigosecretaria);
    return cad;
    }
    public List<CadastrarSecretaria> getCadSecretarias(){
    return getPureList(CadastrarSecretaria.class,"from CadastrarSecretaria cad");
    }     
}

CÓDIGO GENERICDAO

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() {
    }
    private static final long serialVersionUID = 1L;
    protected Session getSession() {
        return HibernateUtil.getInstance().getSession();
    }
    protected void saveOrUpadatePojo(Serializable pojo) {
        Session ses = getSession();
        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;
    }
}

CÓDIGO (HIBERNATE UTIL)

package secretaria.entidade;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {
    private static final long serialVersionUID = 1L;
    private static HibernateUtil me;
    private SessionFactory sessionFactory;
    private HibernateUtil() {
        sessionFactory =  new AnnotationConfiguration()
        .setProperty("hibernate.connection.driver_class","org.postgresql.Driver")
        .setProperty("hibernate.connection.url","jdbc:postgresql://localhost:5432/secretarias")
        .setProperty("hibernate.connection.password", "post")
        .setProperty("hibernate.connection.username", "postgres")
        .setProperty("hibernate.dialect","org.hibernate.dialect.PostgreSQLDialect")
        .setProperty("hibernate.hbm2ddl.auto","none")
        .setProperty ("hibernate.show_sql", "true")
        .setProperty ("hibernate.format_sql", "true")
        .setProperty ("hibernate.c3p0.acquire_incement", "1")
        .setProperty ("hibernate.c3p0.idle_test_period", "100")
        .setProperty ("hibernate.c3p0.max_size", "10")
        .setProperty ("hibernate.c3p0.max_statements", "0")
        .setProperty ("hibernate.c3p0.min_size", "5")
        .setProperty ("hibernate.c3p0.timeout", "100")
        .addAnnotatedClass(AbrirChamado.class)
        .addAnnotatedClass(CadastrarEquipamento.class)
        .addAnnotatedClass(CadastrarSecretaria.class)
        .addAnnotatedClass(CadastrarSolicitante.class)
        .addAnnotatedClass(CadastrarTecnico.class)
        .addAnnotatedClass(ControleEquipamento.class)
        .addAnnotatedClass(OrdemServico.class)
        .addAnnotatedClass(Perifericos.class)
        .addAnnotatedClass(TipoManutencao.class)
        .buildSessionFactory();
    }
    public Session getSession(){
        Session toReturn = sessionFactory.openSession();
        toReturn.beginTransaction();
        return toReturn;
    }
    public static HibernateUtil getInstance() {
        if (me == null) {
            me = new HibernateUtil();
        }
        return me;
    }
}

CÓDIGO DA ENTIDADE (CADASTRARSECRETARIA)

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.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")
    private Integer codigosecretaria;
    @Column(name = "nome")
    private String nome;
    @Column(name = "status")
    private String status;
    @Column(name = "codoperinc")
    private Integer codoperinc;
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(name = "datainclusao")
    private Date datainclusao;
    @Column(name = "codoperalt")
    private Integer codoperalt;
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(name = "dataalteracao")
    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 List<CadastrarEquipamento> getCadastrarEquipamento() {
        return cadastrarEquipamento;
    }
    public void setCadastrarEquipamento(List<CadastrarEquipamento> cadastrarEquipamento) {
        this.cadastrarEquipamento = cadastrarEquipamento;
    }
    public List<CadastrarSolicitante> getCadastrarSolicitante() {
        return cadastrarSolicitante;
    }
    public void setCadastrarSolicitante(List<CadastrarSolicitante> cadastrarSolicitante) {
        this.cadastrarSolicitante = cadastrarSolicitante;
    }
    public List<CadastrarTecnico> getCadastrarTecnico() {
        return cadastrarTecnico;
    }
    public void setCadastrarTecnico(List<CadastrarTecnico> cadastrarTecnico) {
        this.cadastrarTecnico = cadastrarTecnico;
    }
    public Integer getCodigosecretaria() {
        return codigosecretaria;
    }
    public void setCodigosecretaria(Integer codigosecretaria) {
        this.codigosecretaria = codigosecretaria;
    }
    public Integer getCodoperalt() {
        return codoperalt;
    }
    public void setCodoperalt(Integer codoperalt) {
        this.codoperalt = codoperalt;
    }
    public Integer getCodoperinc() {
        return codoperinc;
    }
    public void setCodoperinc(Integer codoperinc) {
        this.codoperinc = codoperinc;
    }
    public Date getDataalteracao() {
        return dataalteracao;
    }
    public void setDataalteracao(Date dataalteracao) {
        this.dataalteracao = dataalteracao;
    }
    public Date getDatainclusao() {
        return datainclusao;
    }
    public void setDatainclusao(Date datainclusao) {
        this.datainclusao = datainclusao;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final CadastrarSecretaria other = (CadastrarSecretaria) obj;
        if (this.codigosecretaria != other.codigosecretaria && (this.codigosecretaria == null || !this.codigosecretaria.equals(other.codigosecretaria))) {
            return false;
        }
        return true;
    }
    @Override
    public int hashCode() {
        int hash = 3;
        hash = 17 * hash + (this.codigosecretaria != null ? this.codigosecretaria.hashCode() : 0);
        return hash;

CÓDIGO MANAGER BEAN (SECRETARIA)

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 cad = new CadSecretariaDAO();
    private CadastrarSecretaria selectedSecretaria;
    public Secretaria() {
    }
    public List<CadastrarSecretaria> getCachedCadSecretaria() {
        if (cachedCadSecretarias == null){
            cachedCadSecretarias = cad.getCadSecretarias();
        }
        return cachedCadSecretarias;
    }
    public String doConfirmaCadSecretaria(){
        selectedSecretaria = new CadastrarSecretaria();
        return "ConfirmarNovoUsuario";
    }
    public String finishConfirmaCadSecretaria(){
       cad.addCadastrarSecretaria(selectedSecretaria);
       cachedCadSecretarias = null;
       return "ListCadSecretaria";
    }
    public CadastrarSecretaria getSelectedSecretaria() {
        return selectedSecretaria;
    }
    public void setSelectedSecretaria(CadastrarSecretaria selectedSecretaria) {
        this.selectedSecretaria = selectedSecretaria;
    }
}

3 Respostas

thiago.correa

Velho, assim a olho nu é complicado achar o erro! O erro retornado é que há alguma coisa nula aí no meio do caminho, minha sugestão é que você depure o programa e veja aonde está ocorrendo o erro, você vai ver que fica mais fácil!

aeciovc

aparentemente,

o que esse botão faz??

onde está o método no ManagedBean que vai dispará-lo??

mostra o jsp ai

LPJava

eh complicado olhar os codigos postado e procurar o seu erro null. Mas, uma coisa eh certa, algo ai está retornando o valor null e vc está tentando manipular esse valor usando o operador . (ponto) lembre-se da regra do java, agora eh fazer um debug e encontrar. tem que ser paciente, pq isso faz parte, essa nao sera a ultima vez que vai aparecer, vai se conformando e trabalhando para ver com menor frequencia :D.

abracos,

Criado 9 de abril de 2010
Ultima resposta 10 de abr. de 2010
Respostas 3
Participantes 4