java - servlet - jstl maven
La superclase "javax.servlet.http.HttpServlet" no se encontró en la ruta de compilación de Java (14)
Agregar a continuación la dependencia en pom.xml, funcionó para mí.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
Soy un principiante y estoy aprendiendo spring e hibernate (utilizando maven en el proyecto) y me encontré con este problema y me quedé atrapado aquí. intenté encontrar una solución pero no terminé en ninguna parte. Por favor ayuda. muchas gracias
Error: "No se puede encontrar el descriptor de la biblioteca de etiquetas para" http://java.sun.com/jsp/jstl/core "
Código:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
Intenté las soluciones dadas en La superclase "javax.servlet.http.HttpServlet" no se encontró en la ruta de compilación de Java. ¿Cómo importo la API de javax.servlet en mi proyecto de Eclipse?
El error sigue presente
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.journaldev.spring</groupId>
<artifactId>SpringMVCHibernate</artifactId>
<name>SpringMVCHibernate</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.6</java-version>
<org.springframework-version>4.0.3.RELEASE</org.springframework-version>
<org.aspectj-version>1.7.4</org.aspectj-version>
<org.slf4j-version>1.7.5</org.slf4j-version>
<hibernate.version>4.3.5.Final</hibernate.version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- Apache Commons DBCP -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- Spring ORM -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>runtime</scope>
</dependency>
<!-- @Inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<additionalProjectnatures>
<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
</additionalProjectnatures>
<additionalBuildcommands>
<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
</additionalBuildcommands>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>org.test.int1.Main</mainClass>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
Agregar el servidor Tomcat en el tiempo de ejecución del servidor hará el trabajo:
Haga clic derecho en su proyecto y luego;
Propiedades del proyecto → Tiempo de ejecución objetivo → Seleccionar / Comprobar "Apache Tomcat" → Finalizar.
Agregar el servidor Tomcat en el tiempo de ejecución del servidor hará el trabajo:
Project Properties-> Java Build Path-> Add Library -> Select "Server Runtime" from the list-> Next->Select "Apache Tomcat"-> Finish
Agregue el archivo servlet-api.jar que está presente en la carpeta lib bajo la carpeta tomcat. Puedes hacer esto usando los siguientes pasos:
1.Seleccione las propiedades del proyecto
2. Seleccione Java Build Path
3. Seleccionar bibliotecas
4. Seleccione tarros externos
5.Seleccione servlet-api.jar
6. Aplicar y Ok.
El problema debe ser resuelto después de estos pasos.
Enfrenté el mismo error. Agregar el servidor Tomcat en el entorno de tiempo de ejecución resolverá el error:
Haga clic con el botón derecho en su proyecto -> Propiedades -> Ejecuciones específicas -> Seleccione el servidor apache tomcat -> haga clic en aplicar -> haga clic en Aceptar.
Me encontré con el mismo problema. Traté de agregar el servidor en "Server Runtime", pero desafortunadamente eso no funcionó para mí.
Lo que funcionó para mí es que javax.servlet-api-3.0.1.jar
archivo javax.servlet-api-3.0.1.jar
en la ruta de compilación. Por otro lado, si es un proyecto Maven, agregue dependencia para este archivo jar. Esto definitivamente funcionaría.
Pruebe esto - Agregue Tomcat en tiempo de ejecución
Siempre verifique si sus archivos java están en src / main / java y no en alguna otra ruta de directorio .
Su sistema puede tener muchas versiones diferentes de tomcat. Puedes intentar resolverlo.
Haga clic con el botón derecho en Proyecto y luego seleccione Propiedades, seleccione Facetas de proyecto y en la sección derecha, seleccione versiones de Apache Tomcat a la derecha como Runtimes y haga clic en Aceptar
Tuve este mismo problema y un par de otros fueron reportados para un proyecto maven existente.
Tenía las dependencias adecuadas en su lugar y podía ver el contenedor bajo las dependencias de maven, sin embargo, el proyecto fue incorrectamente puesto en eclipse.
Terminé teniendo que eliminar el proyecto, clonar de git nuevamente y luego hacer una importación del proyecto como proyecto maven existente.
Esto resolvió el problema en este hilo y varios otros problemas que estaba teniendo. Más detalles sobre la solución se pueden encontrar aquí: Maven Project en Eclipse `org.springframework no se puede resolver a un tipo` de la ruta de destino
Yo también recibí el mismo error que se cita a continuación:
La superclase "javax.servlet.http.HttpServlet" no se encontró en la ruta de compilación de Java.
Seguí estos pasos para resolver el problema:
- Haga clic derecho en el proyecto
- Seleccionar propiedades
- Seleccione Project Facets
- Seleccione Apache Tomcat como servidor de tiempo de ejecución
- Haga clic en Aceptar
agregue el archivo jar servlet-api que está presente en la carpeta lib bajo la carpeta tomcat. Puede hacer esto de la siguiente manera Proyecto -> propiedades -> ruta de compilación java -> debajo de las bibliotecas haga clic en agregar jar externos luego de ir a proyecto -> limpiar -> compilar todo. esto funcionó para mí.
para el proyecto Maven, deberías agregar esta dependencia
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
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.
<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 → Target Runtimes → Apache Tomcat (cualquier servidor)