the servletcontext servlet resolved reconoce cannot java eclipse servlets

servletcontext - ¿Cómo importo la API javax.servlet en mi proyecto Eclipse?



servlet-api.jar eclipse (14)

Por encima de todo, nunca debe copiar / descargar / mover / incluir manualmente las bibliotecas individuales específicas de servletcontainer como servlet-api.jar

@BalusC,

Preferiría usar las clases exactas que usará mi aplicación en lugar de una proporcionada por Eclipse (cuando me siento como un desarrollador paranoico).

Otra solución sería utilizar Eclipse "Configurar ruta de compilación"> Bibliotecas> Agregar tarros externos, y agregar la api de servlet de cualquier contenedor que elija usar.

Y siga la solución de @kaustav datta cuando use ant para construir - tenga una propiedad como tomcat.home o weblogic.home. Sin embargo, introduce otra restricción de que el desarrollador debe instalar Weblogic en su máquina local si se está utilizando weblogic. ¿Alguna otra solución más limpia?

Quiero desarrollar con Servlets en Eclipse, pero dice que el paquete javax.servlet no se puede resolver. ¿Cómo puedo agregar el paquete javax.servlet a mi proyecto de Eclipse?


Asegúrate de tener el Eclipse y el Servidor correctos

Asegúrese de que está utilizando al menos Eclipse IDE para desarrolladores de Java EE (con EE ). Contiene herramientas de desarrollo para crear proyectos web dinámicos e integrar fácilmente contenedores de servlet (esas herramientas son parte de Web Tools Platform, WTP). En caso de que ya tengas Eclipse IDE para Java (sin EE), y hayas instalado manualmente algunos complementos relacionados con EE, entonces es probable que no se haya hecho correctamente. Será mejor que lo trash y tomes el IDE de Eclipse real para Java EE.

También debe asegurarse de que ya tiene un servletcontainer instalado en su máquina que implementa al menos la misma versión de Servlet API que el servletcontainer en el entorno de producción, por ejemplo, Tomcat , Oracle GlassFish , JBoss AS / WildFly , etc. Por lo general, solo Descargar el archivo ZIP y extraerlo es suficiente. En el caso de Tomcat, no descargue el formato EXE, solo para entornos de producción basados ​​en Windows. Consulte también ao Varios puertos (8005, 8080, 8009) requeridos por el servidor Tomcat en localhost ya están en uso .

Un servletcontainer es una implementación concreta de la API de Servlet. Tenga en cuenta que la descarga del SDK de Java EE en Oracle.com básicamente contiene GlassFish. Entonces, si ya has descargado el SDK de Java EE, básicamente ya tienes GlassFish. También tenga en cuenta que, por ejemplo, GlassFish y JBoss AS / WildFly son más que un simple servletcontainer, también son compatibles con JSF, EJB, JPA y todos los demás gustos de Java EE. Véase también ao ¿Qué es exactamente Java EE?

Integrar Servidor en Eclipse y asociarlo con Project.

Una vez que haya instalado Eclipse para Java EE y un servletcontainer en su máquina, realice los siguientes pasos en Eclipse:

  1. Integrar servletcontainer en Eclipse

    a. A través de la vista de los servidores

    • Abra la vista Servidores en el cuadro inferior.
    • Haga clic derecho allí y elija Nuevo> Servidor .
    • Elija la marca y la versión de servletcontainer adecuadas y recorra el asistente.

    segundo. O bien, a través de las preferencias de Eclipse.

    • Abra Ventana> Preferencias> Servidor> Entornos de tiempo de ejecución .
    • Puede agregar , editar y eliminar servidores aquí.

  2. Asociar servidor con proyecto

    a. En nuevo proyecto

    • Abra el Project Navigator / Explorer en el lado izquierdo.
    • Haga clic con el botón derecho allí y elija Nuevo> Proyecto y luego en el menú Web> Proyecto web dinámico .
    • En el asistente, establezca el Tiempo de ejecución de destino en el servidor integrado.

    segundo. O bien, en proyecto existente.

    • Haga clic derecho en el proyecto y seleccione Propiedades .
    • En la sección de tiempos de ejecución específicos , seleccione el servidor integrado.

    De cualquier manera, Eclipse tomará automáticamente las bibliotecas del contenedor de servlet en la ruta de compilación. De esta manera podrás importar y usar la API de Servlet.

Nunca lleve consigo archivos JAR específicos del servidor sueltos

En cualquier caso, no debería tener la necesidad de jugar en la propiedad Build Path del proyecto. Por encima de todo, nunca debe copiar / descargar / mover / incluir manualmente las bibliotecas específicas de servletcontainer individuales como servlet-api.jar , jsp-api.jar , el-api.jar , j2ee.jar , javaee.jar , etc. solo conlleva problemas futuros de portabilidad, compatibilidad, classpath y mantenibilidad, ya que su aplicación web no funcionará cuando se implemente en un contenedor de servlet de una marca / versión diferente a la que se obtuvo originalmente de esas bibliotecas.

En caso de que esté utilizando Maven, debe estar absolutamente seguro de que las bibliotecas específicas de servletcontainer que ya están proporcionadas por el tiempo de ejecución de destino están marcadas como <scope>provided</scope> .

Aquí hay algunas excepciones típicas que puede obtener al desechar /WEB-INF/lib o incluso /JRE/lib , /JRE/lib/ext , etc. con bibliotecas específicas de servletcontainer en un intento descuidado de corregir los errores de compilación:


Agregue la dependencia javax.servlet en pom.xml. Su problema será resuelto.

<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency>


De wikipedia .

import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.0 " + "Transitional//EN/">/n" + "<html>/n" + "<head><title>Hello WWW</title></head>/n" + "<body>/n" + "<h1>Hello WWW</h1>/n" + "</body></html>"); } }

Esto, por supuesto, funciona solo si ha agregado el servlet-api.jar a la ruta de compilación de Eclipse. Normalmente, su servidor de aplicaciones (por ejemplo, Tomcat ) tendrá el archivo jar correcto.


En mi caso, cuando fui a la pantalla de tiempos de ejecución específicos , Tomcat 7 no estaba en la lista (deshabilitado) a pesar de estar instalado.

Para solucionarlo, tuve que ir a Preferencias-> Servidor-> Entornos de tiempo de ejecución y luego desinstalar y reinstalar Tomcat 7.


Muchos de nosotros desarrollamos en Eclipse a través de un proyecto de Maven. Si es así, puede incluir las dependencias de Tomcat en Maven a través de los tomcat-servlet-api y tomcat-jsp-api . Uno existe para cada versión de Tomcat. Por lo general, agregarlos con el alcance provided a su POM es suficiente. Esto mantendrá su construcción más portátil.

Si actualiza Tomcat en el futuro, simplemente actualice la versión de estos archivos jar también.


Para proyectos de maven agregue la siguiente dependencia:

<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency>

Reference

Para proyectos de gradle:

dependencies { providedCompile group: ''javax.servlet'', name: ''javax.servlet-api'', version: ''3.0.1'' }

o descarga javax.servlet.jar y agrega a tu proyecto.


Poco diferencia de Hari:

Haga clic derecho en el proyecto ---> Propiedades ---> Java Build Path ---> Agregar biblioteca ... ---> Server Runtime ---> Apache Tomcat ----> Finalizar.


Recibí una excepción de puntero nulo durante la creación del proyecto relacionado con el "Módulo web dinámico".

Para hacer que el proyecto se compile (es decir, para que javax.servlet importe correctamente) tuve que ir a Propiedades del proyecto, seleccionar Facetas del proyecto en la barra lateral, marcar Módulo web dinámico y hacer clic en Aplicar .

Sorprendentemente, esta vez la faceta del "Módulo web dinámico" se instaló correctamente y la importación comenzó a funcionar.


Sé que este es un viejo post. Sin embargo, observé otra instancia en la que en el proyecto ya se ha agregado Tomcat, pero todavía recibimos este error. Hizo esto para resolver eso:
Alt + Enter
Facetas del proyecto
A la derecha, junto a los detalles, hay otra pestaña "Tiempo de ejecución". El servidor tomcat instalado aparecerá en la lista. Selecciónelo
Guarde la configuración y HECHO!

Espero que esto ayude a alguien.


Solución rápida: esto funcionó en Eclipse. Haga clic con el botón derecho en el proyecto -> Propiedades -> Java Build Path (Tab) -> Agregar JAR externos -> localice la implementación del api jar servlet (si Tomcat - se llama servlet-api.jar) -> haga clic en Aceptar. Eso es !!


simplemente puede copiar el servlet-api.jar y copiar los archivos jar en la carpeta lib, que está en WEB-INF. Luego simplemente limpia y construye tu proyecto, tus errores serán resueltos.

**OR**

puede agregar directamente archivos jar a la biblioteca siguiendo estos pasos.

  1. Haga clic derecho sobre el proyecto.
  2. Ir a Propiedades.
  3. Ir a Java Build Path.
  4. Seleccione la opción Agregar biblioteca desde las pestañas.
  5. Añadir archivos jar
  6. servlet-api.jar ruta de tu archivo servlet-api.jar .
  7. Limpia y construye tu proyecto.

Incluya servlet-api.jar desde la carpeta lib de su servidor.

Hacer este paso


PASO 1

Ir a las propiedades de su proyecto (con Alt + Enter o clic derecho)

PASO 2

compruebe Apache Tomcat v7.0 en Targeted Runtime y funciona.