Não retorna consulta (jsp)

4 respostas
emso.exe

Estou tentando fazer um cadastro e consulta através de JSP... a inserção está ok, porém ao consultar o registro gravado ocorre o seguinte erro:

HTTP Status 500 -

type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException

root cause

java.lang.NullPointerException

note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.0.1 logs.
GlassFish Server Open Source Edition 3.0.1

Este são os códigos

cadastraProduto.jsp
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>cadastraProduto</title>
    </head>
    <body>
      <h2>Resultado</h2>
        <%
        packProduto.Produto UmProduto = new packProduto.Produto();

        int flag = Integer.parseInt(request.getParameter("flag"));

        if (flag == 1){
            UmProduto.setCodigo(request.getParameter("codigo"));
            UmProduto.setProduto(request.getParameter("produto"));
            UmProduto.setQtde(request.getParameter("qtde"));
            UmProduto.setPreco(request.getParameter("preco"));
            packProduto.ProdutoBLL.ConsisteUmProduto(UmProduto);
            if (packProduto.ProdutoBLL.getErro())
                out.println(packProduto.ProdutoBLL.getMsg());
            else {
                out.println("<br /><b> REGISTRO GRAVADO! </b><br />");
                out.println("<br /> Código: " + UmProduto.getCodigo());
                out.println("<br /> Produto: " + UmProduto.getProduto());
                out.println("<br /> Qtde: " + UmProduto.getQtde());
                out.println("<br /> Preço: " + UmProduto.getPreco());
                }
            }
        else {
            UmProduto.setCodigo(request.getParameter("codigo"));
            packProduto.ProdutoBLL.ConsisteUmProduto(UmProduto);
            if (packProduto.ProdutoBLL.getErro())
                out.println(packProduto.ProdutoBLL.getMsg());
            else {
                out.println("<br /><b> REGISTRO CONSULTADO! </b><br />");
                out.println("<br /> Código: " + UmProduto.getCodigo());
                out.println("<br /> Produto: " + UmProduto.getProduto());
                out.println("<br /> Qtde: " + UmProduto.getQtde());
                out.println("<br /> Preço: " + UmProduto.getPreco());
                }
            }
        %>
        <br /><br /><a >VOLTAR</a>
    &lt;/body&gt;
&lt;/html&gt;
produtoDAL.java
package packProduto;
import  java.sql.*;

public class ProdutoDAL {
    public static void inseriUmProduto(Produto UmProduto) {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con;
            con = DriverManager.getConnection("jdbc:odbc:UmAlias","","");
            PreparedStatement st = con.prepareStatement("INSERT INTO TabProduto (codigo,produto,qdte,preco) Values (?,?,?,?)");
            st.setInt(1,Integer.parseInt(UmProduto.getCodigo()));
            st.setString(2,UmProduto.getProduto());
            st.setString(3,UmProduto.getQtde());
            st.setString(4,UmProduto.getPreco());
            st.executeUpdate();
            con.close();
        }
        catch(Exception e) {
            System.out.println(e.getMessage());
        }
    }

    public static void consultaUmProduto(Produto UmProduto) {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con;
            con = DriverManager.getConnection("jdbc:odbc:UmAlias","","");
            ResultSet rs;
            Statement st = con.createStatement();
            rs = st.executeQuery("SELECT * FROM TabProduto WHERE codigo='"+ UmProduto.getCodigo() +"'");
            while (rs.next())
            {
              UmProduto.setCodigo(rs.getString("codigo"));
              UmProduto.setProduto(rs.getString("produto"));
              UmProduto.setQtde(rs.getString("qtde"));
              UmProduto.setPreco(rs.getString("preco"));
            }
            con.close();
        }
        catch(Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

Agradeço

4 Respostas

drsmachado

Já debugou para ver onde ?(em que linha) o erro ocorre?

JonaTHANNM

vc verificou se esta linha captura algum valor para ser passado para o método de busca?

UmProduto.setCodigo(request.getParameter("codigo"));
emso.exe

O erro estava na chamada do método que verifica se o código lançado é int e não nulo… não havia postado o código, porém agora exibe o código do produto pesquisado, mas os demais campos aparecem como null.

emso.exe

problema resolvido!!! era um erro de sintaxe no sql :oops:

Criado 5 de junho de 2011
Ultima resposta 18 de jun. de 2011
Respostas 4
Participantes 3