es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

404 después de utilizar la anotación del Servlet @WebServlet(…)

¡Soy yo de nuevo! 🙁

Ahora me encontré con algunos problemas.

Estoy aprendiendo Servlet estos días con IDEA.

He escrito el código y configurado Tomcat (versión 10.0.10) así:

paquete yj.servlet;

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

@WebServlet(urlPatterns = {"/usuario"})
public class UserServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("Se ha recibido una solicitud GET");

}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("Se ha recibido una solicitud POST");
    doGet(req, resp);
}

}

Configuración de Tomcat 1

y

Configuración de Tomcat 2

y para asegurarme, mi versión de Servlet aquí es

    <dependency>
      <groupid>javax.servlet</groupid>
      <artifactid>javax.servlet-api</artifactid>
      <version>4.0.1</version>
    </dependency>

también mi versión de web-app es 3.1 (lo que podría significar que se permite utilizar @WebServlet())

Creo que debería imprimirse algo en la salida de Tomcat, como:

Tomcat en ejecución

Pero aparece esta página:

Página de error 404

cuando escribo http://localhost:8089/usuario como dirección.

Entonces, ¿hay algo mal con mi servlet y cómo puedo solucionar esto?

¡Cualquier ayuda será apreciada!

La estructura del proyecto aquí es simple.

Estructura del proyecto

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que tu servlet no está siendo mapeado correctamente. Has mapeado tu servlet a “/user” utilizando la anotación @WebServlet, pero cuando intentas acceder a esta URL, recibes un error 404.

    Una posible solución es verificar si tu aplicación está desplegada correctamente. Puedes hacer esto revisando los registros que son generados por tu servidor de aplicaciones. En el ejemplo, parece que estás utilizando Tomcat. Para revisar los registros, navega hacia el directorio “logs” dentro de tu directorio de instalación de Tomcat y busca el archivo “catalina.out”. Este archivo debería contener los registros generados por Tomcat.

    Otra cosa a revisar es si tu aplicación está realmente ejecutándose en el puerto 8089. Por defecto, Tomcat se ejecuta en el puerto 8080. Si has configurado Tomcat para que se ejecute en el puerto 8089, asegúrate de que tu navegador también esté apuntando al puerto correcto.

    Si tu aplicación está ejecutándose en el puerto correcto y has revisado los registros, pero aún así sigues recibiendo un error 404, intenta agregar una barra diagonal antes de la URL en tu navegador. En otras palabras, intenta acceder a http://localhost:8089/user en lugar de http://localhost:8089user.

    Por último, verifica si la clase del servlet está en el paquete correcto. En el ejemplo, la clase del servlet está en el paquete “yj.servlet”. Asegúrate de que este paquete esté incluido en tu archivo web.xml.

    Si ninguna de estas soluciones funciona, es posible que desees probar con un servidor de aplicaciones o IDE diferente para ver si el problema persiste.

Comments are closed.