serpiente
estoy tratando de usar eclipse por Java EE para desarrollar aplicaciones web.
necesito usar Gato como mi servidor. He descargado Tomcat y se está ejecutando. Pero mi programa no compila.
Obtuve el siguiente error:
No se puede resolver la importación javax.servlet.
¿Que necesito hacer?
Richard Fearn
Debe agregar la API de Servlet a su classpath. En Tomcat 6.0, esto está en un JAR llamado servlet-api.jar
en Tomcat lib
carpeta. Puede agregar una referencia a ese JAR al classpath del proyecto, o poner una copia del JAR en su proyecto Eclipse y agregarlo al classpath desde allí.
Si quieres dejar el JAR en Tomcat’s lib
carpeta:
- Haga clic derecho en el proyecto, haga clic en Propiedades.
- Elegir Ruta de compilación de Java.
- Haga clic en el bibliotecas pestaña
- Hacer clic Agregar JAR externos…
- Navegar para encontrar
servlet-api.jar
y selecciónelo. - Hacer clic OK para actualizar la ruta de compilación.
O, si copia el JAR en su proyecto:
- Haga clic derecho en el proyecto, haga clic en Propiedades.
- Elegir Ruta de compilación de Java.
- Hacer clic Añadir JAR…
- Encontrar
servlet-api.jar
en su proyecto y selecciónelo. - Hacer clic OK para actualizar la ruta de compilación.
-
Tener una copia de un JAR específico de servletcontainer en
/WEB-INF/lib
haría que su aplicación no fuera portátil. Solo podrá ejecutarse exactamente en la misma marca/versión del servidor y no en otras marcas/versiones del servidor.NoClassDefFoundError
volaría alrededor de tu cabeza.– BalusC
7 de noviembre de 2010 a las 22:24
-
Nunca dije que debería entrar en
WEB-INF/lib
– solo que podría copiarse en el proyecto para que pueda agregarse a la ruta de compilación. Eso no significa necesariamente que se incluya en la GUERRA.– Richard Fearn
7 de noviembre de 2010 a las 22:26
-
Aún así, eso es simplemente torpe y no es el enfoque recomendado.
– BalusC
7 de noviembre de 2010 a las 22:29
-
Es una solución alternativa. BalusC da la solución exacta a continuación.
– Ahmet Karakaya
5 de diciembre de 2012 a las 7:31
-
nada cambió agregando servlet-api.jar, proyecto > limpio lo hizo funcionar
– Kimchoky
7 de septiembre de 2017 a las 6:43
Si aún no lo ha hecho, debe integrar Tomcat en su Servidores vista. Haga clic derecho allí y elija Nuevo > Servidor. Seleccione la versión adecuada de Tomcat de la lista y complete el asistente.
Cuando creas un nuevo Proyecto web dinámicodebe seleccionar el servidor integrado de la lista como Tiempo de ejecución objetivo en el primer paso del asistente.
O cuando tienes una existente Proyecto web dinámicopuede configurarlo/cambiarlo en Tiempos de ejecución dirigidos entrada en las propiedades del proyecto. Eclipse luego agregará automáticamente todas sus bibliotecas a la ruta de compilación (¡sin tener una copia de ellas en el proyecto!).
-
@sage: Eclipse también hace eso para los nuevos proyectos creados después de integrar el servidor.
– BalusC
12 de febrero de 2014 a las 9:13
-
No funciona para mí, tengo todo como dijiste, pero aún no puedo resolver javax.servlet (usando Tomcat 8.0.3 como servidor)
– romanos
9 de marzo de 2014 a las 8:10
Debe establecer el alcance de la dependencia en ‘proporcionado’ en su POM.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
Entonces todo estará bien.
Tuve el mismo problema porque mi “Proyecto web dinámico” no tenía referencia al servidor instalado que quería usar y, por lo tanto, no tenía referencia a la API de Servlet que proporciona el servidor.
Los siguientes pasos lo resolvieron sin agregar un Servlet-API adicional a Java Build Path (Versión Eclipse: Luna):
- Botón derecho del ratón en su “Proyecto web dinámico”
- Seleccione Propiedades
- Seleccione Facetas del proyecto en la lista del lado izquierdo del asistente “Propiedades”
- En el lado derecho del asistente, debería ver una pestaña llamada tiempos de ejecución. Seleccione la pestaña Tiempo de ejecución y revisa el servidor desea ejecutar el servlet.
Editar: si no hay ningún servidor en la lista, puede crear uno nuevo en la pestaña Tiempos de ejecución
Andrei
Agregar a pom.xml
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
-
Solo tenga en cuenta que, en caso de que este problema siga ocurriendo al usar maven, solo necesitamos reconstruir el proyecto nuevamente para que reconozca el cambio de las dependencias.
– Cuong Vo
23 de mayo de 2019 a las 2:09
Bozho
Añade el servlet-api.jar
a su classpath. Puede tomarlo de la carpeta lib de tomcat.
-
Solo tenga en cuenta que, en caso de que este problema siga ocurriendo al usar maven, solo necesitamos reconstruir el proyecto nuevamente para que reconozca el cambio de las dependencias.
– Cuong Vo
23 de mayo de 2019 a las 2:09
varun
Si obtiene este error de compilación, significa que no ha incluido el servlet jar en el classpath. La forma correcta de incluir este jar es agregar el jar Server Runtime a su proyecto de eclipse. Debe seguir los pasos a continuación para solucionar este problema: Puede descargar servlet-api.jar desde aquí
http://www.java2s.com/Code/Jar/s/Downloadservletapijar.htm
Save it in directory. Right click on project -> go to properties->Buildpath and follow the steps.
Nota: Los frascos que se muestran en la pantalla no son correctos.
puede seguir el paso para configurar.