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.

¿Por qué no se encuentra el servlet en la carpeta de Tomcat?

Estoy tratando de crear el primer servlet en tomcat siguiendo muchos ejemplos en internet pero siempre me da error 404. Ya revisé otras soluciones pero no entiendo cuál es el problema principal. (a veces también me da error 500).

Enlace:

http://localhost:8080/Servlet/Hello

Directorio:

--Tomcat
--webapps
--Servlet
--WEB-INF
--web.xml
--classes
--HelloWorld.class
--HelloWorld.java

HelloWorld.java:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World copy!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World copy!</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

web.xml:

<?xml version="1.0" encoding="UTF-8"?>

-<web-app xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4">


<servlet>

<servlet-name>Hello</servlet-name>

<servlet-class>HelloWorld</servlet-class>

</servlet>


<servlet-mapping>

<servlet-name>Hello</servlet-name>

<url-pattern>/Hello</url-pattern>

</servlet-mapping>

</web-app>
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Basado en la información y el código proporcionados, aquí hay algunas posibles soluciones para el error 404 y 500:

    1. Asegúrese de que Tomcat esté en ejecución y escuchando en el puerto 8080. Puede verificar esto yendo a http://localhost:8080 en su navegador web y viendo si aparece la página de inicio de Tomcat.
    2. Verifique que la carpeta Servlet y su contenido estén en la ubicación correcta con respecto al directorio de instalación de Tomcat. En este caso, debería estar en el directorio webapps. También puede verificarlo yendo a http://localhost:8080/Servlet/ en su navegador y viendo si muestra la página predeterminada de Tomcat.

    3. Verifique que el archivo web.xml esté configurado correctamente. En este caso, parece estar correcto con las etiquetas servlet y servlet-mapping configuradas para hacer referencia a la clase HelloWorld.

    4. Verifique que el archivo HelloWorld.java esté compilado y que el archivo .class resultante esté en el directorio correcto. En este caso, debería estar en el directorio classes bajo WEB-INF. Puede verificar esto revisando si el archivo HelloWorld.class está presente en la ubicación correcta.

    5. Verifique que el patrón de URL del servlet coincida con el especificado en el archivo web.xml. En este caso, debería ser http://localhost:8080/Servlet/Hello ya que eso es lo que se especifica en la etiqueta servlet-mapping.

    6. Si todo lo demás falla, intente reiniciar Tomcat y/o borrar la caché de su navegador web.

    También vale la pena mencionar que el error 404 indica que el recurso solicitado (en este caso, el servlet) no se pudo encontrar, mientras que el error 500 indica un error interno del servidor. Esto a veces puede ser útil para acotar la causa del problema.

Comments are closed.