Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.