Java.lang.NullPointerException

9 respostas
M

Alguem conseguir ver erro.
ja estou um dia tentando ver isso e nada.

public String salvar() {

        try {
            boolean all = true;
            if (!all) {
                return "/pages/convenio/formConvenio.jsf?faces-redirect=true";
            } else {
                if (convenio.getCodigo() == null) {
                    dao.adiciona(convenio);
                    Msg.addMsgInfo("Cadastro realizado!");
                    this.convenio = new Convenio();
                    getListaConvenios();

                } else {
                    if (convenio.getCodigo() != null) {
                        dao.alterar(convenio);
                        Msg.addMsgInfo("Atualização realizada com sucesso!");
                        this.convenio = new Convenio();
                        getListaConvenios();
                        return "/pages/convenio/formLConvenio.jsf?faces-redirect=true";
                    } else {
                        Msg.addMsgError("Cadastro não realizado!");
                    }
                }
            }

        } catch (Exception ex) {
            System.out.println("erro" + ex);
            Msg.addMsgError("Não foi possivel realizar a operação!");
        }
        return "/pages/convenio/formLConvenio.jsf?faces-redirect=true";
    }

pagina

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"      
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                template="/templates/padraoTemplate.xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.prime.com.tr/ui" > 



    <ui:define name="conteudo">

        <h:form >
            <div>
                <p:growl id="msg" showDetail="true" />
            </div>
            <br/><br/>
            <center>
                <p:panel style="width: 1200px"  header="Cadastro do Convenio">
                    <br/>
                    <h:graphicImage  value="/images/convenio.png" />
                    <br/>
                    <br/>

                    <p:panel header="Gestor Pactuador" >
                        <f:facet name="header" >
                            <h1><a href="#{facesContext.externalContext.requestContextPath}/pages/responsavel/formPCResponsavel.jsf">Selecionar Gestor Pactuador</a></h1>
                        </f:facet>
                        <table style="left: 0" width="800px" border="0" align="center">
                            <tr>
                                <td colspan="3" >
                            <h:outputText value="Nome do Gestor" />  <br />
                            <p:inputText id="nomeGestor" required="true" requiredMessage="Campo [ Nome do Gestor ] obrigatorio"  value="#{convenioMB.convenio.responsavel.nome}" size="30" disabled="true"  />
                            </td>
                            </tr>
                            <tr>
                                <td colspan="3">
                            <h:outputText value="CPF" />  <br />
                            <p:inputText  id="cpfGestor" required="true" requiredMessage="Campo [ CPF ] obrigatorio"  value="#{convenioMB.convenio.responsavel.cpf}" size="14" disabled="true" />
                            </td>
                            </tr>
                        </table>
                    </p:panel>

                    <center>
                        <p:tabView dynamic="true" cache="true">
                            <p:tab title="Dados do Concedente"> 
                                <p:panel >
                                    <table  width="900" border="0" align="center">
                                        <tr>
                                            <td>
                                        <h:commandLink immediate="true" action="/pages/orgao/formPConcedente" value="Selecionar Concedente" /> 
                                        </td>
                                        </tr>



                                        <tr>
                                            <td>
                                        <h:outputText value="Concedente: " />  <br/>
                                        <p:inputText required="true" requiredMessage="Campo [ Concedente ] obrigatorio"  value="#{convenioMB.convenio.concedente.nome}" disabled="true" size="60" />
                                        </td>
                                        </tr>
                                        <tr>
                                            <td>
                                        <h:outputText value="Responsável: " />  <br/>
                                        <p:inputText required="true" requiredMessage="Campo [ Responsável  ] obrigatorio"  value="#{convenioMB.convenio.concedente.responsavel.nome}" disabled="true" size="60" />
                                        </td>
                                        </tr>
                                    </table>
                                </p:panel>

                            </p:tab>
                            <p:tab title="Dados do Convenente">                                  
                                <p:panel>
                                    <table  width="900" border="0" align="center">
                                        <tr>
                                            <td>
                                        <h:commandLink immediate="true" action="/pages/orgao/formPConvenente" value="Selecionar Convenente" /> 
                                        </td>
                                        </tr>



                                        <tr>
                                            <td>
                                        <h:outputText value="Convenente: " />  <br/>
                                        <p:inputText required="true" requiredMessage="Campo [ Convenente ] obrigatorio"  value="#{convenioMB.convenio.convenente.nome}" disabled="true" size="60" />
                                        </td>
                                        </tr>
                                        <tr>
                                            <td>
                                        <h:outputText value="Responsável: " />  <br/>
                                        <p:inputText required="true" requiredMessage="Campo [ Responsável ] obrigatorio"  value="#{convenioMB.convenio.convenente.responsavel.nome}" disabled="true" size="60" />
                                        </td>
                                        </tr>
                                    </table>
                                </p:panel>
                            </p:tab>

                            <p:tab title="Dados do Executor">                                  
                                <p:panel>
                                    <table  width="900" border="0" align="center">
                                        <tr>
                                            <td>
                                        <h:commandLink immediate="true" action="/pages/orgao/formPExecutor" value="Selecionar Executor" /> 
                                        </td>
                                        </tr>



                                        <tr>
                                            <td>
                                        <h:outputText value="Executor: " />  <br/>
                                        <p:inputText required="true" requiredMessage="Campo [ Executor ] obrigatorio"  value="#{convenioMB.convenio.executor.nome}" disabled="true" size="60" />
                                        </td>
                                        </tr>
                                        <tr>
                                            <td>
                                        <h:outputText value="Responsável: " />  <br/>
                                        <p:inputText required="true" requiredMessage="Campo [ Responsável ] obrigatorio"  value="#{convenioMB.convenio.executor.responsavel.nome}" disabled="true" size="60" />
                                        </td>
                                        </tr>
                                    </table>
                                </p:panel>
                            </p:tab>
                        </p:tabView> 
                    </center>

                    <p:panel>
                        <h:form>
                            
                            <table style="left: 0" width="900" border="0" align="center">
                                <tr>
                                    <td colspan="0" >
                                <h:outputText value="Nº. SICONV: " /> <br/>
                                <p:inputText id="numeSincov" value="#{convenioMB.convenio.numeroSiconv}" size="10"  />
                                <br />
                                </td>
                                <td colspan="0">
                                <h:outputText value="Nº. SIAFI: " /> <br/>
                                <p:inputText  id="numeSiafi" value="#{convenioMB.convenio.numeroSiafi}" size="10"  />
                                </td>
                                <td  >
                                <h:outputText value="Nº. Original: " />  <br/>
                                <p:inputText  id="numeOriginal"  value="#{convenioMB.convenio.numeroOriginal}" size="10"  />
                                </td>
                                </tr>
                                <tr>
                                    <td colspan="0">
                                <h:outputText value="Situação:" /> <br/>
                                <h:selectOneMenu id="situacao" value="#{convenioMB.convenio.situacaoConvenio}" converter="genericConverter"  >
                                    <f:selectItem itemLabel="[ Selecione ]" noSelectionOption="true" />
                                    <f:selectItems value="#{situacaoConvenioMB.situacoes}" var="sico" itemValue="#{sico}" itemLabel="#{sico.codigo}" />					
                                </h:selectOneMenu>
                                </td>
                                <td colspan="0">
                                <h:outputText  value="Modalidade:"/> <br/>
                                <h:selectOneMenu id="modalidade" value="#{convenioMB.convenio.modalidade}" converter="genericConverter" >
                                    <f:selectItem itemLabel="[ Selecione ]" noSelectionOption="true" />
                                    <f:selectItems value="#{modalidadeMB.modalidades}" var="moda" itemValue="#{moda}" itemLabel="#{moda.codigo}" />					
                                </h:selectOneMenu>
                                </td>
                                </tr>
                                <tr>
                                    <td colspan="10">
                                <h:outputText value="Objeto do Convênio" /> <br />
                                <p:inputTextarea id="objeto"  value="#{convenioMB.convenio.objeto}"  cols="110"/>
                                </td>
                                </tr>
                            </table>
                        </h:form>
                            <table>                        
                                <tr>
                                    <td>
                                <h:outputText value="Data Inicio Vigência : " /> <br />
                                <p:inputMask id="dataInicio" value="#{convenioMB.convenio.dataInicioVigencia}" maxlength="10" mask="99/99/9999">
                                    <f:convertDateTime pattern="dd/MM/yyyy" />
                                    <f:ajax listener="#{convenioMB.checkDataInicio(event)}" event="blur" render="resultDtInicio" />
                                </p:inputMask>
                                <br/>
                                <h:outputText id="resultDtInicio" value="#{convenioMB.resultDtInicio}" style="color: red"/>
                                </td>

                                <td>
                                <h:outputText value="Data Fim Vigência : " /> <br />
                                <p:inputMask id="dataFim" value="#{convenioMB.convenio.dataFimVigencia}" maxlength="10" mask="99/99/9999">
                                    <f:convertDateTime pattern="dd/MM/yyyy" />
                                    <f:ajax listener="#{convenioMB.checkDataFim(event)}" event="blur" render="resultDtFim" />
                                </p:inputMask>
                                <br/>
                                <h:outputText value="#{convenioMB.resultDtTermino}" id="resultDtFim" style="color: red"/>
                                </td>
                                </tr>
                                <tr>
                                    <td>
                                <h:outputText value="Data Publicação no D.O.U : " /> <br />
                                <p:inputMask id="dataPublic" value="#{convenioMB.convenio.dataPublicacao}" maxlength="10" mask="99/99/9999">
                                    <f:convertDateTime pattern="dd/MM/yyyy" />
                                    <f:ajax listener="#{convenioMB.checkDtPublic(event)}" event="blur" render="resultDtPublic" />
                                </p:inputMask>
                                <br/>
                                <h:outputText value="#{convenioMB.resultDtPublicacao}" id="resultDtPublic" style="color: red"/>
                                </td>
                                <td colspan="0">
                                <h:outputText value="Data Conclusão da Licitação: "/><br />
                                <p:inputMask id="datalicita" value="#{convenioMB.convenio.dataConclusaoLicitacao}" maxlength="10" mask="99/99/9999">
                                    <f:convertDateTime pattern="dd/MM/yyyy" />
                                    <f:ajax listener="#{convenioMB.checkDtLicitacao(event)}" event="blur" render="resultDtLicitacao" />
                                </p:inputMask>
                                <br/>
                                <h:outputText value="#{convenioMB.resultDtLicitacao}" id="resultDtLicitacao" style="color: red"/>
                                </td>
                                </tr>
                                <tr>
                                    <td colspan="0">
                                <h:outputText value="Data de Inicio da Execução do Objeto: "/><br />
                                <p:inputMask id="dataInicioExe" value="#{convenioMB.convenio.dataInicioObjeto}" maxlength="10" mask="99/99/9999">
                                    <f:convertDateTime pattern="dd/MM/yyyy" />
                                    <f:ajax listener="#{convenioMB.checkDtExe(event)}" event="blur" render="resultDtExecucao" />
                                </p:inputMask>
                                <br/>
                                <h:outputText value="#{convenioMB.resultDtExecucao}" id="resultDtExecucao" style="color: red"/>
                                </td>
                                <td>
                                <h:outputText value="Data Conclusão do Objeto: "/><br />
                                <p:inputMask id="dataFimObj" value="#{convenioMB.convenio.dataConclusaoObjeto}" maxlength="10" mask="99/99/9999">
                                    <f:convertDateTime pattern="dd/MM/yyyy" />
                                    <f:ajax listener="#{convenioMB.checkDtConclucaoObj(event)}" event="blur" render="resultDtConclucaoObj" />
                                </p:inputMask>
                                <br/>
                                <h:outputText value="#{convenioMB.resultDtConclucaoObj}" id="resultDtConclucaoObj" style="color: red"/>
                                </td>
                                </tr>
                                <tr>
                                    <td colspan="0">
                                <h:outputText value="Data do Inicio da Prestação de Contas: "/><br />
                                <p:inputMask id="dataInicioPre" value="#{convenioMB.convenio.dataInicioPrestacaoContas}" maxlength="10" mask="99/99/9999">
                                    <f:convertDateTime pattern="dd/MM/yyyy" />
                                    <f:ajax listener="#{convenioMB.checkDtInicioPres(event)}" event="blur" render="resultDtInicioPres" />
                                </p:inputMask>
                                <br/>
                                <h:outputText value="#{convenioMB.resultDtInicioPres}" id="resultDtInicioPres" style="color: red"/>
                                </td>
                                <td>
                                <h:outputText value="Data do Fim da Prestação de Contas: "/><br />
                                <p:inputMask id="dataFimPres" value="#{convenioMB.convenio.dataFimPrestacaoContas}" maxlength="10" mask="99/99/9999">
                                    <f:convertDateTime pattern="dd/MM/yyyy" />
                                    <f:ajax listener="#{convenioMB.checkDtFimPres(event)}" event="blur" render="resultDtFimPres" />
                                </p:inputMask>
                                <br/>
                                <h:outputText value="#{convenioMB.resultDtFimPres}" id="resultDtFimPres" style="color: red"/>
                                </td>
                                </tr>
                            </table>
                    </p:panel>    

                    <p:panel header="DOS RECURSOS">

                        <table style="left: 0" width="900" border="0" align="center">
                            <tr>
                                <td colspan="2">
                            <h:outputText value="Valor Concedente ( R$ ): " /><br/>
                            <p:inputText id="valorConcedente" value="#{convenioMB.convenio.valorConcedente}" size="15"  maxlength="20">
                                <f:convertNumber pattern="#,##0.00" />
                                <f:ajax listener="#{convenioMB.checkSomar(event)}" event="change" render="valorTotal" />
                            </p:inputText>
                            <h:outputText value="9999999.99" style="color: red"/>
                            <br/>
                            <h:outputText value="#{convenioMB.resultConcedente}" id="resultConcedente" style="color: red"/>

                            </td>
                            <td>
                            <h:outputText value="Valor Convenente( R$ ): "/><br/>
                            <p:inputText id="valorConvenente"  value="#{convenioMB.convenio.valorConvenente}" size="15" maxlength="20" >
                                <f:convertNumber pattern="#,##0.00" />
                                <f:ajax listener="#{convenioMB.checkSomar(event)}" event="change" render="valorTotal"  />
                            </p:inputText>
                            <h:outputText value="9999999.99" style="color: red"/>
                            <br/>
                            <h:outputText value="#{convenioMB.resultConvenente}" id="resultConvenente" style="color: red"/>

                            </td>

                            <td>
                            <h:outputText value="Valor Total( R$ ): "/><br/>
                            <p:inputText id="valorTotal"   value="#{convenioMB.convenio.valorTotal}" disabled="true" size="15" maxlength="20" >
                                <f:convertNumber pattern="#,##0.00" /> 
                            </p:inputText>
                            </td>
                            </tr>
                            <tr>
                                <td colspan="10">
                            <h:outputText value="Observação" /> <br />
                            <p:inputTextarea id="obs"  value="#{convenioMB.convenio.obsConvenio}"  cols="110"/>
                            </td>
                            </tr>
                        </table>
                    </p:panel>
                    <table>
                        <tr>
                            <td>
                        <p:commandButton immediate="true" ajax="true" id="btSalvar" image="ui-icon-disk" update="msg"   value="Salvar"  action="#{convenioMB.salvar()}" style=" left: 0"/>
                        <p:commandButton immediate="true" value="Cancelar" action="#{convenioMB.tela()}" />
                        </td>
                        </tr>
                    </table>
                </p:panel>
            </center>
        </h:form>
    </ui:define>
</ui:composition>

9 Respostas

A

Boa tarde.

Cole o stack trace que saberemos exatamente onde ocorre o nullpointer …

[]'s

M

Só aparece
isso

java.lang.NullPointerException

A

:shock: :shock: :shock:

Nossa, estranho isso heim … QUando que ocorre esse erro ??? quando carrega a pagina, quando clica em salvar ?? quando ?

Você tentou debugar o método salvar ??

PS.
Depois, dá uma revisada nesse trecho de código, e verifica novamente se você precisa desse if.

boolean all = true;  
if (!all) {  
  return "/pages/convenio/formConvenio.jsf?faces-redirect=true";  
} else {

[]'s

M

ocorre quando salvar.

Esse codigo estava usando para validar os campos.

A

1 - Veja que você possui 2 forms, um dentro do outro, isso pode ocasionar erros.

2 - Reveja a necessidade do immediate=“true” no comando salvar (caso tenha dúvidas pesquise sobre ele e o ciclo de vida do JSF).

3 - Certifique-se que o objeto convenio - convenioMB.convenio esteja inicializado, o mesmo vale para convenioMB.convenio.responsavel, convenioMB.convenio.concedente, convenioMB.convenio.concedente.responsavel.

A

Cara, faz o seguinte.

muda essa parte do código, pra gente achar o erro mais facil

catch (Exception ex) { 
         // Adiciona essa linha
         ex.printStacKTrace();
            System.out.println("erro" + ex);  
            Msg.addMsgError("Não foi possivel realizar a operação!");  
        }

ai você gera o erro, e cola o stack aqui…

[]'s

M

Apareceu esse erro.

GRAVE: java.lang.NullPointerException

at br.gov.rr.cti.dao.ConvenioDAO.adiciona(ConvenioDAO.java:54)

at br.gov.rr.cti.controler.ConvenioMB.salvar(ConvenioMB.java:220)

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 javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:737)

at javax.el.BeanELResolver.invoke(BeanELResolver.java:467)

at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:254)

at com.sun.el.parser.AstValue.invoke(AstValue.java:228)

at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)

at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)

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:794)

at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935)

at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)

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:593)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)

at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:680)

Obrigado a todos pela ajuda.

rod_badboy

michaelgerson,
veja se o código " if (convenio.getCodigo() == null) { " fica na linha 220 de sua classe ConvenioMB.
Ao que parece o método ConvenioDAO.salvar() está tentando adicionar um objeto convenio, e este objeto está nulo. Você tem que instanciá-lo, assim como faz dentro deste próprio if.

Outra coisa camarada, tenta colocar algo um pouco menos genérico no título dos tópicos. 8)

Abraço.

A

Cole sua classe ConvenioDAO aqui, acredito que o erro ocorre na linha 54.

Att.

Criado 3 de janeiro de 2012
Ultima resposta 4 de jan. de 2012
Respostas 9
Participantes 4