ejemplo - La superclase "javax.servlet.http.HttpServlet" no se encontró en la ruta de compilación de Java
spring maven web project (15)
Agregar el servidor Tomcat en el tiempo de ejecución del servidor hará el trabajo:
Propiedades del proyecto → Java Build Path → Agregar biblioteca → Seleccione "Tiempo de ejecución del servidor" de la lista → Siguiente → Seleccione "Apache Tomcat" → Finalizar .
Esta pregunta ya tiene una respuesta aquí:
Tengo un proyecto creado por la integración de Maven en Eclipse. Todos funcionan bien, pero en el espacio de trabajo en todos los archivos JSP tenemos esto:
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
A la primera cuerda donde colocar:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Cuando creo un proyecto web dinámico básico y JSP en: todo está bien, no hay errores.
Agregue primero un tiempo de ejecución y seleccione las propiedades del proyecto. A continuación, verifique el nombre del servidor en la pestaña ''Runtimes'' como se muestra en la imagen.
Como esto no tiene respuesta, supongo que hay algo más que las dependencias de Maven que están mal en la construcción de operaciones.
Mientras no uso Maven, tengo el mismo problema de vez en cuando al recrear mi entorno de desarrollo desde svn, y siempre olvido por qué y tengo que resolverlo. Desafortunadamente parece que este es un problema con Eclipse.
Puedo eliminar todos estos errores de los proyectos que funcionaron una vez seleccionando solo uno de los proyectos web dinámicos, o solo los proyectos dependientes de Tomcat, y mover una dependencia en el orden de compilación. Esto parece obligar a todos los proyectos a reconstruirse correctamente y todos los errores se resuelven.
Haga clic derecho en un proyecto web, seleccione "crear ruta" -> "Configurar ruta de construcción". Vaya a la pestaña "Ordenar y exportar", luego elija una biblioteca o entrada de jarra y muévala hacia arriba o hacia abajo. Usé la biblioteca del sistema JRE y la moví a la parte superior.
Haga clic en Aceptar, y todo ese rojo desaparece!
Estos pasos realmente pueden ayudarlo a:
Si no instalaste ningún servidor tienes que hacer estos pasos:
Ventana de menú → Preferencias → Expend Server → Entorno de tiempo de ejecución → Agregar → elija un nombre y luego elija la ruta del servidor Apache que ya instaló en su PC (puede presionar descargar e instalar también) → Finalizar → Aceptar
Ref # para más información, haga clic aquí
Agregue el servidor Tomcat:
Propiedades del proyecto → Ruta de compilación Java → Agregar biblioteca → Seleccione "Tiempo de ejecución del servidor" de la lista * → Siguiente → Seleccione "Apache Tomcat" → Finalizar
Ref # Esta respuesta
Incluya servlet-api-3.1.jar
en sus dependencias.
Maven
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
Gradle
configurations { provided } sourceSets { main { compileClasspath += configurations.provided } } dependencies { provided ''javax.servlet:javax.servlet-api:3.1.0'' }
Proyecto → Propiedades → Tiempo de ejecución de destino → * Apache Tomcat trabajó para mí. No hay tiempos de ejecución de destino en las facetas (estoy en Eclipse v4.2 (Luna)).
Proyecto → Propiedades → Tiempo de ejecución de destino → Apache Tomcat trabajó para mí. No hay tiempos de ejecución de destino en las facetas (estoy en Eclipse v4.2 (Juno)).
Seleccione proyecto → Propiedades → Facetas del proyecto → Tiempo de ejecución objetivo → Servidor VMware .
Funcionó para mí.
Si no está utilizando Maven, simplemente suelte el javax.servlet-api.jar en su carpeta de lib del proyecto.
Solo agregue estas dependencias a su archivo pom.xml
:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
Y si nada funciona por el motivo que sea, créelo desde la línea de comandos:
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
Agregar el servidor Tomcat en el tiempo de ejecución del servidor hará el trabajo:
Propiedades del proyecto → Tiempo de ejecución de destino → Seleccione su servidor de la lista, "Tiempo de ejecución de JBoss" → Finalizar
En el caso de Apache puede seleccionar Apache Runtime.
En el caso de JBoss ... haga clic con el botón derecho en proyecto → Crear ruta Java → agregar archivos JAR externos.
Luego navegue a jboss-folder → Common → lib → servlet-api.jar
. . Haga clic en Aceptar , actualice el proyecto y ejecútelo.
Incluya servlet-api.jar desde la carpeta lib de su servidor.
Hacer este paso
¿Qué es?
El archivo JAR de servlet-api es una biblioteca que contiene las interfaces y clases de la especificación de la API de Servlet. El archivo JAR de servlet-api contiene solo la interfaz (la API) de la Especificación de 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 / empaquetado
Servlet-api.jar es parte de la descarga de Java EE, por lo que puede desarrollar sus aplicaciones web (no podría compilar su clase FirstServlet
si Java EE no la contuviera).
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 también contienen la implementación de las interfaces que forman parte del Servlet. API.
Sin embargo, el nombre no siempre es el mismo, y puede que ni siquiera exista como un archivo JAR separado, las clases de la API de Servlet podrían estar agrupadas en otro archivo JAR.
Sin embargo, puede descargar un archivo JAR independiente 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 compilar su aplicación web si tiene la API de Servlet, sin importar de dónde venga. Después de compilar su aplicación web, puede empaquetarlo opcionalmente en un archivo WAR (WAR = Web ARchive) que es simplemente un archivo ZIP que contiene sus archivos estáticos, sus clases compiladas de Java y archivos de configuración como web.xml
, etc. Poder ejecutar su aplicación web compilada en cualquier contenedor Servlet.
Para un proyecto de hormigas :
Asegúrese de que tiene servlet-api.jar en la carpeta lib
.
Para un proyecto de Maven:
Asegúrese de tener la dependencia agregada en POM.xml
.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
Otra forma de hacerlo es : Actualice las facetas del proyecto para elegir el servidor correcto.
Marque esta casilla en esta ubicación:
Proyecto → Propiedades → Tiempo de ejecución de destino → Apache Tomcat (cualquier servidor)