Jump to content

Archived

This topic is now archived and is closed to further replies.

Ricardo Venanti

[Resolvido] Erro : java.lang.NullPointerException

Recommended Posts

Olá pessoal sou novo na linguagem Java e me deparei com o seguinte erro: java.lang.NullPointerException.

Pesquisei nos fóruns e na internet, o erro é devido a um campo nulo. Porém fiz o Debug do NetBeans 6.5, e as variáveis estão carregando normalmente, quando eu vou chamar uma função, passando as informações das variáveis, ele cai no catch, mostrando o erro acima...

o meu código é o seguinte:

 

try{
            ResultSet rs = stmMsSql.executeQuery();
           
            while (rs.next()) {

                 Usu_TSiteCli insere = new Usu_TSiteCli();

                 insere.setidCustomer(Integer.parseInt(rs.getString("idCustomer")));
                 insere.setUsu_DsCpf(Double.parseDouble(rs.getString("dsCpf")));
                 insere.setUsu_CodCli(0);
                 insere.setUsu_DatImp("01/01/1900");
                 insere.setUsu_HorImp("01:00");

            
                 insereUsuTSiteCli(insere);

             }
        }catch (Exception e) {
            System.out.print("selecionaDadostbExportCustomer erro :" + e.getMessage()+"\n");
            System.out.print("Erro1:" + e.toString()+"\n");
            System.out.print("Erro2:" + e.getCause()+"\n");

coloquei informações fixas nas variaveis para teste...

Quando ele chega na instrução insereUsuTSiteCli(insere), ele perde as informações...

 

Se alguém puder ajudar...

 

Obrigado.

Share this post


Link to post
Share on other sites

O erro provavelmente está dentro desse método insereUsuTSiteCli.

Tem como postar o código fonte dele?

E também se voce puder poste a mensagem de erro completa, pois ela traz a "pilha" da exceção.

Share this post


Link to post
Share on other sites

É provável que o erro esteja numa dessas duas linhas:

insere.setidCustomer(Integer.parseInt(rs.getString("idCustomer")));
insere.setUsu_DsCpf(Double.parseDouble(rs.getString("dsCpf")));

Caso o valor retornado pelo método getString("field") de ResultSet seja nulo o método de transformação em inteiro (parseInt) ou ponto flutuante (parseDouble) dispararão uma excessão NullPointerException.

Share this post


Link to post
Share on other sites

Esse é o codigo.

 

private void insereUsuTSiteCli(Usu_TSiteCli insere)throws SQLException {

        sqlIn = "insert into Usu_TSiteCli (idCustomer, "+
                "Usu_DsCpf , "+
                "Usu_CodCli, "+
                "Usu_DatImp, "+
                "Usu_HorImp) "+
                " values ( ? , ? , ? , ? , ? )";

        PreparedStatement stmOracle = this.connectionOracle.prepareStatement(sqlIn);
        System.out.print("aqui");
        try {
            stmOracle.setInt     (1, insere.getidCostumer());
            stmOracle.setDouble  (2, insere.getUsu_DsCpf());
            stmOracle.setInt     (3, insere.getUsu_CodCli());
            stmOracle.setString  (4, insere.getUsu_DatImp());
            stmOracle.setString  (5, insere.getUsu_HorImp());
    
            stmOracle.execute();

        } catch (Exception e) {
            System.out.print("Usu_TSiteCli Erro :" + e.getMessage());
        }

obrigado.

Share this post


Link to post
Share on other sites

Eu estou compilando, dai ele só mostra o erro : Erro1:java.lang.NullPointerException....

 

O que eu percebi que quando eu faço o Debug, ele abre uma aba com o conteudo do INSERE., só que quando chamo a função essa aba some e ocorre o erro...

 

Obrigado.

Share this post


Link to post
Share on other sites

Eu não uso o Netbeans, mas voce precisa fazer o seguinte:

 

ou coloque um breakpoint dentro da função que dá o problema, por exemplo nessa linha:

PreparedStatement stmOracle = this.connectionOracle.prepareStatement(sqlIn);

Ou quando estiver debugando deve ter uma opção para entrar dentro da função, ai lá voce executa o passo a passo.

 

Veja no console os erros e poste, só assim vai ficar mais claro.

Share this post


Link to post
Share on other sites

Eu fiz como você falou...

Coloquei o breakpoint dentro da função...

E na linha que você colocou ali, ela já da erro...

O que eu percebi que apareceu um cadeado na função... Fui ver qual era o motivo, apareceu a seguinte mensagem:

 

package br.com.livrarias.dao

Javadoc não foi encontrado. A documentação Javadoc não existe para este item ou você não adicionou o Javadoc especificado no Gerenciador de plataformas Java ou no Gerenciador de bibliotecas.

 

Não sei se isso tem algo haver...

 

Obrigado

 

Cara eu descobri, que faltou a conexão do Oracle.

 

Agora o erro que apareceu foi esse :

 

java.sql.SQLException: Exceção de E/S: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169870336)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))

 

 

P.S. Não chega a passar para a função insereUsuTSiteCli(insere);

 

Grato.

 

Pessoal,

obrigado pela ajuda. Consegui resolver o problema.

 

Valeu!!!

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.