Saltar al contenido

Error de compilación: el paquete javax.servlet no existe

Hola, descubrimos la respuesta a lo que buscas, deslízate y la encontrarás a continuación.

Solución:

Debe agregar la ruta a Tomcat’s /lib/servlet-api.jar archivo al classpath de tiempo de compilación.

javac -cp .;/path/to/Tomcat/lib/servlet-api.jar com/example/MyServletClass.java

El classpath es donde Java necesita buscar dependencias importadas. De lo contrario, se establecerá de forma predeterminada en la carpeta actual que se incluye como . en el ejemplo anterior. los ; es el separador de ruta para Windows; si está usando un sistema operativo basado en Unix, entonces necesita usar : en cambio.

Si aún enfrenta el mismo error de compilación y está Realmente usando Tomcat 10 o posterior, entonces debería migrar las importaciones en su código fuente desde javax.* a jakarta.*.

import jakarta.servlet.*;
import jakarta.servlet.http.*;

Ver también:

  • jakarta.servlet.ServletException: Clase [com.practice.MyServlet] no es un servlet

Si está trabajando con un proyecto maven, agregue la siguiente dependencia a su pom.xml


    javax.servlet
    javax.servlet-api
    3.0.1
    provided

¿Es un JSP o Servlet?

Bueno, estos dos paquetes en realidad no están integrados en Java como lo está java.io. En su lugar, vienen con el servidor web compatible con Servlet (por ejemplo, Tomcat). Entonces, antes de que el compilador de Java pueda compilar nuestro Servlet, debemos informarle dónde encontrar las clases en estos dos paquetes.

Las clases requeridas normalmente se almacenan en un archivo llamado servlet.jar. La ubicación exacta de este archivo dependerá del software de servidor web particular que utilice, pero en el caso de Tomcat, puede encontrarlo en el subdirectorio lib del directorio principal de instalación de Tomcat (p. ej., d:Program FilesApache Groupjakarta- tomcat-3.2.3libservlet.jar). Para que el compilador de Java pueda compilar Servlets, debe agregar este archivo a su classpath de Java. De forma predeterminada, Java busca clases en el directorio actual (“.”) únicamente. De este modo, “.” es la vía de acceso de clases predeterminada. Si cambia la vía de acceso de clases para incluir el archivo servlet.jar (“.;d:…libservlet.jar” en Windows, “.:/usr/…/lib/servlet.jar” en Unix ), entonces el Servlet debería compilarse correctamente.

Puede especificar una vía de acceso de clases para usar cuando ejecuta javac.exe de la siguiente manera:

d:javadev> javac -classpath ".;d:Program FilesApache Group jakarta-tomcat-3.2.3libservlet.jar" MyServlet.java

O en Linux javac usa: en lugar de;

server1> javac -classpath ".:./servlet/servlet.jar" MyServlet.java

Si conservas alguna incertidumbre y forma de aclararse nuestro enunciado eres capaz de añadir una crítica y con gusto lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *