Erro HTTP 500 / conversão de tipos

4 respostas
alexandre.marques

Alguém pode me ajudar, eu procurei, procurei, mais não consegui achar algo que ajudasse a sanar a dúvida.

Estou com problema para concluir uma aplicação de cadastro de produtos, em JSP e Servlet.

eu preciso converter 3 parametros que vem do FORM atraves do .getParameter, porém, eu não estou conseguindo converter.

existe alguma maneira de fazer isso, receber os parametros com o .getParameter(String) converte - los e passa-los para o DAO, os parametros com os seus determinados tipos? :?:

[b]Mensagem de erro

HTTP Status 500 -

type Exception report

message

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

exception

java.lang.NullPointerException

sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:991)

java.lang.Float.parseFloat(Float.java:422)

Controle.AdicionaProduto.service(AdicionaProduto.java:36)

javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.19 logs.

Apache Tomcat/7.0.19
[/b]

Código JSP

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %>    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cadastro de Produtos</title>
</head>
<body>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0" style="border:#006699 solid 1px">
  <tr>
    <td height="62" colspan="2" bgcolor="#eeeeee" class="titulo1">&nbsp;&nbsp;Administração - Cadastrar produtos</td>
  </tr>
  <tr>
    <td width="161" valign="top" style="border-right:#006699 solid 1px"></td>
    <td width="597" valign="top">
    <form action="AdicionaProduto" method="post" name="form1" id="form1" enctype="multipart/form-data">
      <table width="448" align="center">
        <tr valign="baseline">
          <td width="147" align="right" nowrap="nowrap" class="menuadm">Categoria:</td>
          <td width="289">
      <jsp:useBean id="dao_box" class = "Controle.Categoria_DAO" />
          <select name="id_categoria">
            <option value="">Selecione</option>
		       <c:forEach var = "cat" items = "${dao_box.lista}">
            		<option value="">${cat.categoria}</option>
               </c:forEach>
           </select>
           
          </td>
        </tr>
        <tr> </tr>
        <tr valign="baseline">
          <td align="right" nowrap="nowrap" class="menuadm">Nome do produto:</td>
          <td><input type="text" name="nome" value="" size="32" /></td>
        </tr>
        <tr valign="baseline">
          <td align="right" nowrap="nowrap" class="menuadm">Descricao:</td>
          <td><textarea name="descricao" cols="45" rows="5"></textarea></td>
        </tr>
        <tr valign="baseline">
          <td align="right" nowrap="nowrap" class="menuadm">Peso:</td>
          <td><input type="text" name="peso" value="" size="32" /> 
          (ex: 0.350)</td>
        </tr>
        <tr valign="baseline">
          <td align="right" nowrap="nowrap" class="menuadm">Qtd em estoque:</td>
          <td><input type="text" name="qtd_estoque" value="" size="32" /> 
          (ex: 14)</td>
        </tr>
        <tr valign="baseline">
          <td align="right" nowrap="nowrap" class="menuadm">Prod_ativo:</td>
          <td valign="baseline"><table>
              <tr>
                <td><input type="radio" name="prod_ativo" value="S" />
                  Sim</td>
              </tr>
              <tr>
                <td><input type="radio" name="prod_ativo" value="N" />
                  Não</td>
              </tr>
          </table></td>
        </tr>
        <tr valign="baseline">
          <td align="right" nowrap="nowrap" class="menuadm">Preço:</td>
          <td><label>
            <input type="text" name="preco" id="preco" />
          (ex: 9.99)</label></td>
        </tr>
        <tr valign="baseline">
          <td align="right" nowrap="nowrap" class="menuadm">Imagem do produto:</td>
          <td><input type="file" name="path2" id="path2" /></td>
        </tr>
        <tr valign="baseline">
          <td nowrap="nowrap" align="right">&nbsp;</td>
          <td><input type="submit" value="Cadastrar produto" /></td>
           <td><a href="index.html">Voltar</a></td>
        </tr>
      </table>
      <input type="hidden" name="MM_insert" value="form1" />
    </form>
    <p>&nbsp;</p></td>
  </tr>
  <tr>
    <td colspan="2" bgcolor="#eeeeee">&nbsp;</td>
  </tr>
</table>
</body>
</html>

Código da Servlet

package Controle;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Modelo.Produtos;

@WebServlet("/AdicionaProduto")
public class AdicionaProduto extends HttpServlet {
	
	private static final long serialVersionUID = 1L;


	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		PrintWriter out = response.getWriter();
		
		String prod = request.getParameter("nome");
		String descricao_prod = request.getParameter("descricao");
		String peso_prod = request.getParameter("peso");
		String qt_estoque_prod = request.getParameter("qtd_estoque");
		String prod_ativo_prod = request.getParameter("prod_ativo");
		String preco_prod = request.getParameter("preco");
		String imagem = request.getParameter("path2");
		
		Produtos produtos = new Produtos();
		
		produtos.setNome(prod);
		produtos.setDescricao(descricao_prod);
		produtos.setPeso(Float.parseFloat(peso_prod));
		produtos.setQt_estoque(Integer.parseInt(qt_estoque_prod));
		produtos.setProd_ativo(prod_ativo_prod);
		produtos.setPreco(Float.parseFloat(preco_prod));
		produtos.setImagem_prod(imagem);
		
		Produto_DAO prod_dao = new Produto_DAO();
		
		prod_dao.adiciona(produtos);
		
		 out.println("<html>");
		 out.println("<body>");
		 out.println("<div>Produto " + produtos.getNome() + " Adicionado com sucesso!</div>");
		 out.println("</body>");
		 out.println("</html>");
		
	}


	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
	
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		
	}

}

4 Respostas

jaboot
enctype="multipart/form-data"

Eu acho que o teu problema está aí. Tenta tirar isso e vê no que vai dar.

J

Use métodos de conversão
Exemplo. Converter para int

int x = Integer.parseInt(request.getParameter("valor");

Obviamente terá que vim um número da sua página jsp

alexandre.marques

Opá, tudo bom amigão, eu consegui resolver o problema, inclusive eu tentei essa opção também rsrssrr, más, acabei descubrindo que o problema além de ser por calsa do enctype="multipart/form-data" que o nosso amigo jonatex comentou, existiam outros problemas no banco, na pagina, enfim, Ainda bem que eu consegui arrumar! mesmo assim eu agradeço a colaboração sua e do jonatex em me ajudar a entender o processo.

Abraço! :wink:

J

Precisamos estamos ai! :smiley:

Criado 1 de dezembro de 2011
Ultima resposta 1 de dez. de 2011
Respostas 4
Participantes 3