Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

java.lang.NumberFormatException: null

$
0
0

@jairodione escreveu:

Olá Pessoal!

Estou fazendo um cadastro para lançamento em conta corrente (débito e crédito). O sistema não consegue pegar o índice da chave estrangeira "o código da conta".
Segue abaixo descrito as classes, arquivos e erros:
log do NetBeans:

java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:454)
at java.lang.Integer.parseInt(Integer.java:527)
at org.apache.jsp.tag.web.listaContasSelect_tag.doTag(listaContasSelect_tag.java:86)
at org.apache.jsp.lancamento_jsp.jspxmeth_tagsJairo_005flistaContasSelect_005f0(lancamento_jsp.java:186)
at org.apache.jsp.lancamento_jsp.jspService(lancamentojsp.java:99)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:722)

  • No browser:

HTTP Status 500 - type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /lancamento.jsp at line 31

28: label for="lanconcred">Credito:
29: input type="text" name="lanconcred" id="lanconcred" required />
30: select name="selectConta" id="selectConta">
31: tagsJairo:listaContasSelect/>
32: select>
33: div>br>
34: div class="campos">

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.NumberFormatException: null
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.lancamento_jsp.jspService(lancamentojsp.java:131)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:454)
java.lang.Integer.parseInt(Integer.java:527)
org.apache.jsp.tag.web.listaContasSelect_tag.doTag(listaContasSelect_tag.java:86)
org.apache.jsp.lancamento_jsp.jspxmeth_tagsJairo_005flistaContasSelect_005f0(lancamento_jsp.java:186)
org.apache.jsp.lancamento_jsp.jspService(lancamentojsp.java:99)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.

Pagina JSP:

%@page import="br.com.jairo.modelo.Lancamentos"%>
%@page import="java.util.Iterator"%>
%@page import="java.util.List"%>
%@page contentType="text/html" pageEncoding="UTF-8"%>
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
%@taglib tagdir="/WEB-INF/tags" prefix="tagsJairo" %>
tagsJairo:verificaSessao/>
c:import url="cabecalho.jsp"/>

form id="formLancamento" method="post" action="LancamentoCRUD">
    h1>Novo Lancamento/h1>
    div class="campos">
        label for="lancodigo">Codigo:/label>
        input type="text" name="lancodigo" id="lancodigo" disabled />
    </div><br>
    div class="campos">
        label for="landata">Data:/label>
        input type="date" name="landata" id="landata" placeholder="dd/mm/aaaa" pattern="[0][9]{2}/[0][9]{2}/[0][9]{4}" onkeypress="formataMascara(this,'##/##/####'); return Numero(event);" size="10" maxlength="10" required value="${param.landata}" />
    </div><br>
    div class="campos">
        label for="lanconcred">Credito:/label>
        input type="text" name="lanconcred" id="lanconcred" required />
        select name="selectConta" id="selectConta">
            tagsJairo:listaContasSelect/>
        </select>
    </div><br>
    div class="campos">
        label for="lancondeb">Debito:</label>
        input type="text" name="lancondeb" id="lancondeb" required value="${param.lancondeb}" />
    </div><br>
    div class="campos">
        label for="lanvalor">Valor:</label>
        input type="text" name="lanvalor" id="lanvalor" required value="${param.lanvalor}" />
    </div><br>
    div class="campos">
        label for="lanhistorico">Historico:</label>
        input type="text" name="lanhistorico" id="lanhistorico" required size="100" maxlength="100" value="${param.lanhistorico}" />
    </div><br>
    input type="submit" name="acao" value="novo" />
</form>
<c:import url="rodape.jsp"/>

JSTL:

<%@tag body-content="empty" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:useBean id="beanConta" class="br.com.jairo.dao.ContaDAO"></jsp:useBean>
<c:set var="contador" value="${0}"></c:set>
<%
            String selected = "";
            java.util.List listaDeContas = (java.util.List) beanConta.getListaContaCombo();

            for (java.util.Iterator iterator = listaDeContas.iterator(); iterator.hasNext();) {
                br.com.jairo.modelo.Contas contas = (br.com.jairo.modelo.Contas) iterator.next();
                int conCodigo = contas.getConCodigo();
                String conDescricao = contas.getConDescricao();

                if(conCodigo == Integer.parseInt(request.getParameter("concodigo")))
                    selected = "selected";
                else
                    selected = "";
                out.println("<option value="+conCodigo+" "+selected+">"+conDescricao+"</option>");
            }
%>

Servlet

package br.com.jairo.controle;

import br.com.jairo.dao.LancamentoDAO;
import br.com.jairo.modelo.Lancamentos;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Jairo
 */
public class LancamentoCRUD extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, ParseException, SQLException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        RequestDispatcher rd = null;

        String lanCodigo = request.getParameter("lancodigo");
        String lanData = request.getParameter("landata");
        String lanConCred = request.getParameter("lanconcred");
        String lanConDeb = request.getParameter("lancondeb");
        String lanValor = request.getParameter("lanvalor");
        String lanHistorico = request.getParameter("lanhistorico");

        Lancamentos lancamentos = new Lancamentos();
        if (lanCodigo != null) {
            lancamentos.setLanCodigo(Integer.parseInt(lanCodigo));
        }
        DateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
        if(lanData != null){
            Date lanDataFormatada = formatoData.parse(lanData);
            lancamentos.setLanData(lanDataFormatada);
        }
        if(lanConCred != null){
            lancamentos.setLanConCred(Integer.parseInt(lanConCred));
        }
        if(lanConDeb != null){
            lancamentos.setLanConDeb(Integer.parseInt(lanConDeb));
        }
        if(lanValor != null){
            lancamentos.setLanValor(Double.parseDouble(lanValor));
        }

        lancamentos.setLanHistorico(lanHistorico);
        
        LancamentoDAO lancamentoDAO = new LancamentoDAO();

        //Verificar qual é a ação
        String acao = request.getParameter("acao");

        if (acao == null) {
            acao = "listarLancamento";
        }

        if (acao.equals("alterar")) {
            //contaDAO.alteraConta(contas);
            //rd = request.getRequestDispatcher("/ContaCRUD?acao=listarConta");
        } else if (acao.equals("excluir")) {
            //contaDAO.excluiConta(contas);
            //rd = request.getRequestDispatcher("/ContaCRUD?acao=listarConta");
        } //else if (acao.equals("listarConta")) {
            //int numPagina = 1;
            //if (request.getParameter("numpagina") != null) {
                //numPagina = Integer.parseInt(request.getParameter("numpagina"));
            //}          
        else if (acao.equals("novo")) {
            lancamentoDAO.novoLancamento(lancamentos);
            rd = request.getRequestDispatcher("/index.jsp");
        }

        rd.forward(request, response);
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (ParseException ex) {
            Logger.getLogger(LancamentoCRUD.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(LancamentoCRUD.class.getName()).log(Level.SEVERE, null, ex);
        }
    } 

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (ParseException ex) {
            Logger.getLogger(LancamentoCRUD.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(LancamentoCRUD.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}

 - LancamentoDAO

package br.com.jairo.dao;

import br.com.jairo.fabrica.FabricaConexao;
import br.com.jairo.modelo.Lancamentos;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Jairo
 */
public class LancamentoDAO {

    private Connection connection;

    public LancamentoDAO() {
        this.connection = new FabricaConexao().getConnection();
    }

    //metodo para incluir lancamento
    public void novoLancamento(Lancamentos lancamentos) throws SQLException {
        String sql = "insert into lancamentos (landata, lanconcred, lancondeb,lanvalor,lanhistorico) values (?,?,?,?,?)";
        PreparedStatement ps = null;
        try {
            ps = connection.prepareStatement(sql);
            ps.setDate(1, new java.sql.Date(lancamentos.getLanData().getTime()));
            ps.setInt(2, lancamentos.getLanConCred());
            ps.setInt(3, lancamentos.getLanConDeb());
            ps.setDouble(4, lancamentos.getLanValor());
            ps.setString(5, lancamentos.getLanHistorico());
            ps.execute();
        } catch (SQLException ex) {
            Logger.getLogger(LancamentoDAO.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            connection.close();
            ps.close();
        }
    }
}

 - ContaDAO

package br.com.jairo.dao;

import br.com.jairo.fabrica.FabricaConexao;
import br.com.jairo.modelo.Contas;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Jairo
 */
public class ContaDAO {
    private Connection connection;

     public ContaDAO() {
        this.connection = new FabricaConexao().getConnection();
    }

     //exibe contas cadastradas no sistema, paginado
    public List getListaContaPaginado(int pagina, String ordenacao, String pesquisa, String campopesquisa) throws SQLException {
        int limite = 5;
        String sql = "";
        int offset = (pagina * limite) - limite;
        if (campopesquisa.equals("tipocodigo")) {
            if (pesquisa.equals("")) {
                sql = "select * from contas where " + campopesquisa + " > 0 order by " + ordenacao + " LIMIT 5 OFFSET " + offset;
            } else {
                sql = "select * from contas where " + campopesquisa + " = " + pesquisa + " order by " + ordenacao + " LIMIT 5 OFFSET " + offset;
            }
        } else {
            sql = "select * from contas where " + campopesquisa + " like '%" + pesquisa + "%' order by " + ordenacao + " LIMIT 5 OFFSET " + offset;
        }

        PreparedStatement ps = null;
        ResultSet rs = null;
        List<Contas> listaContas = new ArrayList<Contas>();
        try {
            ps = connection.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                Contas contas = new Contas();
                contas.setConCodigo(rs.getInt("conCodigo"));
                contas.setConDescricao(rs.getString("conDescricao"));
                contas.setTipoCodigo(rs.getInt("tipocodigo"));
                contas.setConSaldo(rs.getDouble("conSaldo"));
                listaContas.add(contas);
            }
            return listaContas;
        } catch (SQLException erro) {
            Logger.getLogger(ContaDAO.class.getName()).log(Level.SEVERE, null, erro);
        } finally {
            //connection.close();
            //ps.close();
            //rs.close();
        }
        return null;
    }

    //metodo para excluir conta
    public boolean excluiConta(Contas contas) throws SQLException {
        String sql = "delete from contas where concodigo=?";
        PreparedStatement ps = null;
        try {
            ps = connection.prepareStatement(sql);
            ps.setInt(1, contas.getConCodigo());
            ps.execute();
            return true;
        } catch (SQLException ex) {
            Logger.getLogger(ContaDAO.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            connection.close();
            ps.close();
        }
        return false;
    }

    //metodo para atualizar conta
    public void alteraConta(Contas contas) throws SQLException {
        String sql = "update contas set condescricao=?,tipocodigo=?,consaldo=? where concodigo=?";
        PreparedStatement ps = null;
        try {
            ps = connection.prepareStatement(sql);
            ps.setString(1, contas.getConDescricao());
            ps.setInt(2, contas.getTipoCodigo());
            ps.setDouble(3, contas.getConSaldo());
            ps.setInt(4, contas.getConCodigo());
            ps.execute();
        } catch (SQLException ex) {
            Logger.getLogger(ContaDAO.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            connection.close();
            ps.close();
        }
    }

    //metodo para incluir conta
    public void novaConta(Contas contas) throws SQLException {
        String sql = "insert into contas (condescricao,tipocodigo,consaldo) values (?,?,?)";
        PreparedStatement ps = null;
        try {
            ps = connection.prepareStatement(sql);
            ps.setString(1, contas.getConDescricao());
            ps.setInt(2, contas.getTipoCodigo());
            ps.setDouble(3, contas.getConSaldo());
            ps.execute();
        } catch (SQLException ex) {
            Logger.getLogger(ContaDAO.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            connection.close();
            ps.close();
        }
    }

    //metodo para retornar o numero de registros na paginação
    public String totalRegistros(String pesquisa, String campopesquisa) throws SQLException {
        PreparedStatement psConta = null;
        ResultSet rsConta = null;
        String sqlConta = "";
        try {
            if (campopesquisa.equals("concodigo")) {
                if (pesquisa.equals("")) {
                    sqlConta = "select count(*) as contaRegistros from contas where " + campopesquisa + " > 0";
                } else {
                    sqlConta = "select count(*) as contaRegistros from contas where " + campopesquisa + " = " + pesquisa;
                }
            } else {
                sqlConta = "select count(*) as contaRegistros from contas where " + campopesquisa + " like '%" + pesquisa + "%'";
            }
            psConta = connection.prepareStatement(sqlConta);
            rsConta = psConta.executeQuery();
            rsConta.next();
            String qtdTotalRegistros = rsConta.getString("contaRegistros");
            return qtdTotalRegistros;
        } catch (SQLException ex) {
            Logger.getLogger(ContaDAO.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            connection.close();
            psConta.close();
            rsConta.close();
        }
        return null;
    }

        //lista contas cadastradas no sistema
    public List getListaContaCombo() throws SQLException {
        String sql = "select * from contas order by condescricao";

        PreparedStatement ps = null;
        ResultSet rs = null;
        List<Contas> listaContas = new ArrayList<Contas>();
        try {
            ps = connection.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                Contas contas = new Contas();
                contas.setConCodigo(rs.getInt("conCodigo"));
                contas.setConDescricao(rs.getString("ConDescricao"));
                listaContas.add(contas);
            }
            return listaContas;
        } catch (SQLException erro) {
            Logger.getLogger(ContaDAO.class.getName()).log(Level.SEVERE, null, erro);
        } finally {
            //connection.close();
            //ps.close();
            //rs.close();
        }
        return null;
    }
}

 - LancamentoModel

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.jairo.modelo;

import java.util.Date;

/**
 *
 * @author Jairo
 */
public class Lancamentos {
    private int lanCodigo;
    private Date lanData;
    private int lanConCred;
    private int lanConDeb;
    private double lanValor;
    private String lanHistorico;

    /**
     * @return the lanCodigo
     */
    public int getLanCodigo() {
        return lanCodigo;
    }

    /**
     * @param lanCodigo the lanCodigo to set
     */
    public void setLanCodigo(int lanCodigo) {
        this.lanCodigo = lanCodigo;
    }

    /**
     * @return the lanData
     */
    public Date getLanData() {
        return lanData;
    }

    /**
     * @param lanData the lanData to set
     */
    public void setLanData(Date lanData) {
        this.lanData = lanData;
    }

    /**
     * @return the lanConCred
     */
    public int getLanConCred() {
        return lanConCred;
    }

    /**
     * @param lanConCred the lanConCred to set
     */
    public void setLanConCred(int lanConCred) {
        this.lanConCred = lanConCred;
    }

    /**
     * @return the lanConDeb
     */
    public int getLanConDeb() {
        return lanConDeb;
    }

    /**
     * @param lanConDeb the lanConDeb to set
     */
    public void setLanConDeb(int lanConDeb) {
        this.lanConDeb = lanConDeb;
    }

    /**
     * @return the lanValor
     */
    public double getLanValor() {
        return lanValor;
    }

    /**
     * @param lanValor the lanValor to set
     */
    public void setLanValor(double lanValor) {
        this.lanValor = lanValor;
    }

    /**
     * @return the lanHistorico
     */
    public String getLanHistorico() {
        return lanHistorico;
    }

    /**
     * @param lanHistorico the lanHistorico to set
     */
    public void setLanHistorico(String lanHistorico) {
        this.lanHistorico = lanHistorico;
    }
}

Obs.: Será se devo criar um DAO para lancamentos de débitos e outro para créditos, e criar um MODEL para contaCredito e outro para contaDébito?
Se sim então devo criar mais tabelas para cadastro de contas, ou seja uma tabela contacreito e outro contacréidto?

Mensagens: 1

Participantes: 1

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>