Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Java pede um cast e erro 500

Seguindo a aula notei que quando tento usar o sdf.parse o eclipse me obriga a fazer um cast, realizo o cast e sigo normal, porem quando executo o codigo , estoura o erro 500 conforme descrição abaixo. podem me ajudar ? Type Exception Report Message java.util.Date cannot be cast to java.sql.Date Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date br.com.alura.gerenciador.servlet.NovaEmpresaServlet.doPost(NovaEmpresaServlet.java:29) javax.servlet.http.HttpServlet.service(HttpServlet.java:652) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Note A pilha de erros completa da causa principal está disponível nos logs do servidor.

package br.com.alura.gerenciador.servlet;

import java.io.IOException;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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


    protected void  doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("Cadastrando novas empresa");        

        String nomeEmpresa = request.getParameter("nome");
        String dataAbertura = request.getParameter("data");
        Date dataEmpresa =  null;

        try {
            SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
             dataEmpresa = (Date) sdf.parse(dataAbertura);
        } catch (ParseException e) {
            throw new ServletException(e);
        }

        Empresa empresa = new Empresa();


        empresa.setNome(nomeEmpresa);
        empresa.setDataAbertura(dataEmpresa);;

        Banco banco = new Banco();
        banco.adiciona(empresa);

        // chamando jsp
        RequestDispatcher rd =    request.getRequestDispatcher("/novaEmpresaCriada.jsp");
        request.setAttribute("empresa", empresa.getNome());
        rd.forward(request, response);

    }

}
1 resposta
solução!

vc quer converter um objeto de String para Date? Porque não trabalha com o pacote Date do tipo util.Date?

Pelo oque estou vendo ta usando o pacote do sql, e também hojê em dia é tem varios outros pacotes, objetos para trabalhar com data, mais tente trocar esse pacate para o util.date.

import java.util.Date; // usa esse import 
Date dataEmpresa = null;
        String dataAbertura = "27/11/2011";

        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
        try {
            dataEmpresa = format.parse(dataAbertura);
            System.out.println(dataEmpresa);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }