1
resposta

ERRO 500

Quando estou no navegador e digito http://localhost:8080/gerenciador/formNovaEmpresa.html ele mostra apenas o campo para colocar o nome da empresa e não mostra o da data de abertura. Eu coloco o nome da empresa e clico em enviar, em seguida ele mostra esse erro:

HTTP Status 500 – Internal Server Error Type Exception Report

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

java.lang.NullPointerException java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1439) java.text.DateFormat.parse(DateFormat.java:364) br.com.alura.gerenciador.servlet.NovaEmpresaServlet.doPost(NovaEmpresaServlet.java:32) 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.

Apache Tomcat/9.0.44

Aqui está meu código em NovaEmpresaServlet.java

package br.com.alura.gerenciador.servlet;

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

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

/**
 * Servlet implementation class NovaEmpresaServlet
 */
@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 nova empresa");

        String nomeEmpresa = request.getParameter("nome");
        String paramDataEmpresa = request.getParameter("data");

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

        Empresa empresa = new Empresa();
        empresa.setNome(nomeEmpresa);
        empresa.setDataAbertura(dataAbertura);

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

        request.setAttribute("empresa", empresa.getNome());

        response.sendRedirect("listaEmpresas");

//        //chamar o JSP ou Servlet
//        RequestDispatcher rd = request.getRequestDispatcher("/listaEmpresas");
//        request.setAttribute("empresa", empresa.getNome());
//        rd.forward(request, response);
    }

}
1 resposta

Oie João, tudo bem com você?

Esse erro "NullPointerException" acontece quando você chama algo que não foi criado, então o problema muito provavelmente está no seu código html, provavelmente na "tag input do Data Abertura", pois eu testei esse código que você enviou e funcionou perfeitamente.

Teria como me enviar seu código html para eu dar uma olhada?

Outra coisa, nessa parte do curso aonde você está, o arquivo "formNovaEmpresa" já não é mais uma extensão ".html" mas sim ".jsp", por isso é bom você alterar para evitar outros erros no futuro.

Fico no aguardo! :)