La superclase “javax.servlet.http.HttpServlet” no se encontró en Java Build Path

Tengo un proyecto creado por la integración de Maven en Eclipse. Todo funciona bien, pero en el espacio de trabajo en todos los archivos JSP tiene esto:

The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 

A la primera cadena donde colocar:

  

Cuando creo un proyecto web dynamic básico y JSP en – todo está bien, no hay errores.

Agregue un tiempo de ejecución primero y seleccione las propiedades del proyecto. Luego, verifique el nombre del servidor desde la pestaña ‘Runtimes’ como se muestra en la imagen.

Seleccione el tiempo de ejecución de Project Facets como se muestra en la imagen

Incluye servlet-api-3.1.jar en tus dependencias.

  • Maven

      javax.servlet javax.servlet-api 3.1.0 provided  
  • Gradle

     configurations { provided } sourceSets { main { compileClasspath += configurations.provided } } dependencies { provided 'javax.servlet:javax.servlet-api:3.1.0' } 

Proyecto → PropiedadesTarget RuntimesApache Tomcat funcionó para mí. No hay Target Runtimes en Facets (estoy en Eclipse v4.2 (Juno)).

Para un proyecto Ant :

Asegúrese de que tiene servlet-api.jar en la carpeta lib .

Para un proyecto Maven:

Asegúrese de tener la dependencia agregada en POM.xml .

  javax.servlet javax.servlet-api 3.1.0 provided  

Otra forma de hacerlo es : Actualice las facetas del proyecto para elegir el servidor correcto.

Marque esta casilla en esta ubicación:

Proyecto → PropiedadesTarget Runtimes → Apache Tomcat (cualquier servidor)

Incluye servlet-api.jar desde la carpeta lib de tu servidor.

Ingrese la descripción de la imagen aquí

Haz este paso

Ingrese la descripción de la imagen aquí

¿Qué es?

El archivo JAR de servlet-api es una biblioteca que contiene las interfaces y las clases de la especificación API de Servlet. El archivo JAR de servlet-api contiene solo la interfaz (la API) de la especificación del servlet, por lo que puede usarlo para desarrollar su aplicación web.

¿Dónde puedes conseguirlo?

Se proporciona en el siguiente enlace:

http://download.oracle.com/otndocs/jcp/servlet-3.0-fr-eval-oth-JSpec/

Donde está contenido / incluido

Servlet-api.jar es parte de la descarga de Java EE, por lo que puede desarrollar sus aplicaciones web (no podría comstackr su clase FirstServlet si Java EE no la contiene).

Los contenedores de servlets (como Tomcat, JBoss, GlassFish, etc.) también contienen el servlet-api.jar, de lo contrario no podrían ejecutar su aplicación web, y además contienen la implementación de las interfaces que forman parte del Servlet. API.

Sin embargo, el nombre no siempre es el mismo, y es posible que ni siquiera exista como un archivo JAR separado, las clases de la API Servlet se pueden agrupar en otro archivo JAR.

Sin embargo, puede descargar un archivo JAR separado que contenga solo la API de servlet si solo desea desarrollar una aplicación web para un contenedor de servlet, o si desea crear / escribir su propia implementación de la API de servlet. Mira aquí:

http://download.oracle.com/otndocs/jcp/servlet-3.0-fr-eval-oth-JSpec/

Portabilidad

Puede comstackr su aplicación web si tiene la API de Servlet, sin importar de dónde provenga. Después de comstackr su aplicación web, puede opcionalmente empacarla en un archivo WAR (WAR = Web ARchive) que es simplemente un archivo ZIP que contiene sus archivos estáticos, sus clases comstackdas de Java y los archivos de configuración como web.xml , etc. Y lo hará ser capaz de ejecutar su aplicación web comstackda en cualquier contenedor Servlet.

Proyecto → PropiedadesTarget Runtimes → * Apache Tomcat funcionó para mí. No hay Target Runtimes en Facets (estoy en Eclipse v4.4 (Luna)).

Agregar el servidor Tomcat en el tiempo de ejecución del servidor hará el trabajo:

Project PropertiesTarget Runtimes → Seleccione su servidor de la lista, “JBoss Runtime” → Finish

En el caso de Apache, puede seleccionar Apache Runtime.

Ingrese la descripción de la imagen aquí

Simplemente agregue estas dependencias a su archivo pom.xml :

  javax.servlet javax.servlet-api 3.0.1 provided   javax.servlet.jsp javax.servlet.jsp-api 2.2.1 provided  

Estos pasos realmente pueden ayudarlo a usted:

  1. Si no instaló ningún servidor, debe seguir estos pasos:

    Menú VentanaPreferenciasExpedir servidorEntorno de ejecuciónAgregar → elija un nombre y luego elija la ruta del servidor Apache que ya ha instalado en su PC (puede presionar descargar e instalar también) → FinalizarAceptar

Ref # para más información, haga clic aquí

  1. Agregue el servidor Tomcat:

    Propiedades del proyectoRuta de comstackción de JavaAgregar biblioteca → Seleccione “Tiempo de ejecución del servidor” de la lista * → Siguiente → Seleccione “Apache Tomcat” → Finalizar

Ref # Esta respuesta

Agregar el servidor Tomcat en el tiempo de ejecución del servidor hará el trabajo:

Propiedades del proyecto → Ruta de comstackción de JavaAgregar bibliotecaSeleccione “Tiempo de ejecución del servidor” de la lista → Siguiente → Seleccione “Apache Tomcat” → Finalizar .

Seleccione proyecto → PropiedadesProject FacetsTarget RuntimesVMware Server .

Funcionó para mí

Si no está usando Maven, solo deje caer el javax.servlet-api.jar en su carpeta de lib del proyecto.

Como esto no ha sido respondido, supongo que las dependencias de Maven están equivocadas con las operaciones de comstackción.

Aunque no utilizo Maven, tengo el mismo problema de vez en cuando al volver a crear mi entorno de desarrollo desde svn, y siempre me olvido de por qué y tengo que resolverlo. Desafortunadamente, parece que este es un problema con Eclipse.

Puedo eliminar todos esos errores de proyectos que alguna vez funcionaron seleccionando solo uno de los proyectos web dynamics, o solo proyectos dependientes de tomcat, y mover una dependencia en el orden de comstackción. Esto parece obligar a todos los proyectos a reconstruirse correctamente y luego se resuelven todos los errores.

Haga clic derecho en un proyecto web, seleccione “Ruta de comstackción” -> “Configurar ruta de comstackción”. Vaya a la pestaña “Ordenar y Exportar”, luego elija una entrada de biblioteca o jar y muévala hacia arriba o hacia abajo. Usé la biblioteca del sistema JRE y la moví a la cima.

Haga clic en Aceptar y todo ese rojo desaparece.

Y si nada funciona por cualquier razón, compárelo desde la línea de comando:

 ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 clean ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 compile ant -Dj2ee.server.home=D:\apache-tomcat-8.0.23 dist 

En el caso de JBoss … haga clic derecho en proyecto → Crear ruta de Java → agregue archivos JAR externos.

A continuación, vaya a la carpeta jboss → Comúnlib → servlet-api.jar

. . Haga clic en Aceptar , actualice el proyecto y ejecútelo …