Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

java.lang.IllegalArgumentException, na Servlet FazTudo

Boa tarde, quando fiz a alteração das Servelts para uma só, a "Controller", a lógica funciona tudo ok, mas se eu dou um refresh na resposta com um View ele cai na java.lang.IllegalArgumentException que foi feita para verificar se a Tarefa era vazia

Minha Servlet:

package br.portalRadex.servlet;

import java.io.IOException;

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(urlPatterns = "/Controller")
public class Controller extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        String acao = req.getParameter("acao");

        if (acao == null) {
            throw new IllegalArgumentException("Você não passou qual ação quer executar");
        }

        String classe = "br.portalRadex.servlet." + acao;

        try {
            Class<?> instancia = Class.forName(classe);
            Tarefa classeInstanciada = (Tarefa) instancia.newInstance();
            String view = classeInstanciada.executa(req, resp);
            RequestDispatcher dispatcher = req.getRequestDispatcher(view);
            dispatcher.forward(req, resp);
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
                e.printStackTrace();
        }

    }
}

Quando dou o Refresh ele nao deveria mandar de novo pro server as informações?

obrigado.

2 respostas
solução!

Oi Gabriel, tudo bem ?

Qual é o endereço que você está batendo ? Porque parece que você não está enviando os parâmetros corretamente, o que faz que você caia no if que gera esse exception.

Matheus boa tarde, quando faço o login envio para uma jsp: return "/WEB-INF/paginas/UsuarioLogado.jsp"; acredito que seja apenas o jeito que dou um reloud se dou um CRTL+L ele cai nessa execptioncom o F5isso nao acontece ele pergunta se pode enviar os dados novamente, acho q esta tudo certo.

obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software