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

Erro 405 ao fazer dispatcher para servlet

Olá galera... procurei no fórum e não encontrei algo atual para me ajudar... Estou na aula do Nico para redirecionamento do servlet para outro servlet... Ele gerou o mesmo erro que o Nico enquanto estava na aula, 405... Mas ao fazer a alteração para do método doGet para service o erro 405 persiste... Já dei clean no projeto e no tomcat 10.

Segue o código...

<title>Formulário para preenchimento de cadastro da nova empresa</title>
</head>
<body>

    <form action="novaEmpresa" method="POST">

        <label>Nome: <input type="text" name="nome" /> </label>
        <br>
        <label>Data de abertura: <input type="text" name="data" /></label>
        <br>
        <input type="submit" text="Cadastrar..." />


    </form>

</body>
</html>
@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 (Exception e) {
            throw new ServletException(e);
        }

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

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

        //chama o JSP
        RequestDispatcher rd = request.getRequestDispatcher("/listaEmpresas");

        request.setAttribute("nomeEmpresa", empresa.getNome());
        //vai, segue em frente
        rd.forward(request, response);



        //fim do doPost
    }

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

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

        Banco banco = new Banco();
        List<Empresa> lista = banco.getEmpresas();

        request.setAttribute("empresas", lista);

        RequestDispatcher rd = request.getRequestDispatcher("/listaEmpresas.jsp");
        rd.forward(request, response);

    }
}

Já fechei e reiniciei o Eclipse mas o erro persiste galera... Se puderem me ajudar!

OBS: Acessando diretamente o servlet listaEmpresas funciona tudo direitinho... só a chamada ao método que eu já corrigi como na aula do Nico mas não deu certo ainda! Obrigado a todos!!

3 respostas

Oie André, tudo bem contigo?

Vi seu código e parece que está tudo certo.

Se puder enviar por aqui o erro completo que aparece no console do eclipse, dessa forma poderei ter uma ideia melhor do que pode estar acontecendo.

Uma coisa importante, é recomendável que você use a versão 9 do tomcat, já que na versão 10 houveram muitas alterações e dependendo de qual versão do java e da jsp que você está usando as coisas não irão funcionar. Por isso, acho melhor usar o tomcat 9.

Fico no aguardo :)

Bom dia meu brother!!! Como vc está irmão? Muito obrigado pela atenção cara...

HTTP Status 405 – Method Not Allowed


Type Status Report

Message HTTP method POST is not supported by this URL

Description The method received in the request-line is known by the origin server but not supported by the target resource.
solução!

Brother, boa tarde... Eu criei um novo servlet no Eclipse e confesso que não sei porquê mas agora tudo funcionou corretamente irmão! A única coisa que fiz foi criar um novo Servlet e copiei o código fazendo as devidas alterações nos nomes...

Tudo funcionando corretamente... Provavelmente, era algum problema de configuração daquele servlet unicamente falando... não sei explicar ao certo.

Mas fica a dica pra galera que pode passar pelo mesmo problema! Abraços!!!