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

Erro na servlet

HTTP Status 404 – Not Found Type Status Report

Message /gerenciador/oi

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

Apache Tomcat/9.0.14

package br.com.alura.gerenciador.servlet;

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;

@WebServlet(urlPatterns="/oi")
public class OiMundoServlet extends HttpServlet{

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

        PrintWriter out = resp.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("oi mundo, parabens vc escreveu o primeiro servlets.");
        out.println("</body>");
        out.println("</html>");

        System.out.println("Olá mundo, console");
    }
}

O "bem-vindo.html" funciona corretamente, mas ao usar nosso HttpServlet ocorre o 404

Já tentei reiniciar a máquina pra limpar o cache, mudar a versão do tomcat (8.5), recriar o projeto e nada funcionou

7 respostas

Olá Marco!

Já tentou fazer sem o urlPatterns?

@WebServlet(urlPatterns="/oi")

Tira ele e tenta novamente:

@WebServlet("/oi")

Aguardo seu retorno! :D

Marco quando clica com o botão da direita no projeto tem duas opções de clear, tenta elas ou tbem remove e add o projeto do Tomcat. Sua classe me parece correta, pode ser problema de build mesmo

Boa tarde, Marco! Como vai?

Verifica se vc colocou o nome do projeto como "gerenciador" mesmo. Pq a priori a URL acessada será de acordo com o nome do projeto. Então se o nome do seu projeto está diferente, vc terá que mudar a URL pra bater com o nome do seu projeto.

Outra coisa, verifica se vc adicionou o projeto corretamente ao Tomcat.

Em relação a sua classe, como o Guilherme Romão bem disse, parece que está tudo certo!

Aguardamos seu retorno para que juntos possamos todos chegar juntos à luz do conhecimento!

Grande abraço e bons estudos, meu aluno!

Boa noite galera,

Guilherme Tadeu, tentei fazer sem o urlPatterns. Sem sucesso!

Guilherme Romão, não saquei essa das opções de clear, cliquei com o botão direito do mouse sobre o projeto no ProjectExplorer, tem um clean no Tomcat que tentei após a sua dica mas também não obtive sucesso.

Gabriel Leite, o projeto está com o nome correto, coloquei como o Intrutor Nico ressaltou, tudo minusculo, tentei até criar um gerenciador2 usando o tomcat 8.5 mas nenhum funcionou

galera, tentei até usar o maven antes de tudo isso, o plugin do tomcat chegou a funcionar, mas quando adicionei a dependência da servlet ele para de compilar (apenas nesse caso onde tentei usar o maven)

-Print da estrutura do projeto

https://drive.google.com/file/d/1olFtcpjbgbmL0M0cerAUf33_gDhOHDHC/view?usp=sharing

Boa Tarde,

Tentei a alteração, abaixo conforme na apostila da caelum e recebi um ClassNotFoundException no console do tomcat

https://www.caelum.com.br/apostila-java-web/servlets/

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
    <display-name>gerenciador</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>OiMundoServlet</servlet-name>
        <servlet-class>
            br.com.alura.gerenciador.servlet.OiMundoServlet
        </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>OiMundoServlet</servlet-name>
        <url-pattern>/oi</url-pattern>
    </servlet-mapping>
</web-app>

Erro: GRAVE: Allocate exception for servlet [OiMundoServlet] java.lang.ClassNotFoundException: br.com.alura.gerenciador.servlet.OiMundoServlet

ele chega a aparecer no navegador, mas quando atualizo a página volta o 404

solução!

Uhuuul, finalmente consegui, tive que apelar, a solução não foi das melhores, mas consegui formatando o PC kkkkkk eu uso ubuntu então foi bem fácil essa parte, agora revendo o que eu tinha feito provavelmente eu não estava com a instalação do eclipse para java EE. Já posso proseguir meus estudos

Opa, Marco! Que coisa, heim! Deu logo uma marretada! hahahaha

Mas o importante é que tá tudo certo agora! E sempre que tiver qualquer dúvida é só mandar aqui no fórum da Alura!

Grande abraço e bons estudos, meu aluno!