2012-04-25 10 views
5

Creo un proyecto Spring MVC a partir de la plantilla Spring utilizando el complemento STS. Sin embargo, cuando ejecuto la aplicación, aparece un error:No se puede leer el TLD "META-INF/c.tld" del archivo JAR

org.apache.jasper.JasperException: /WEB-INF/views/home.jsp(1,63) Unable to read TLD "META-INF/c.tld" from JAR file "file:/H:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/imgateway/WEB-INF/lib/jstl-1.2.jar": org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV 

¿Alguien ha experimentado este tipo de problema?

+0

He intentado utilizar Tomcat 6 y Tomcat 7 para el tiempo de ejecución, sin embargo, sigo recibiendo ese error. – xybrek

Respuesta

5

que estaba frente a la misma situación y me di cuenta de que el error es lanzada, obviamente , porque algo salió mal con JSTL. Debido a que las plantillas STS dependen de Maven2, debe eliminar manualmente el artefacto JSTL de su repositorio Maven2 local en forma manual .

En Windows 7: Borre la carpeta c:\Users\<Username>\.m2\repository\javax\servlet\jstl\.

En Linux: eliminar la carpeta /home/<Username>/.m2/repository/javax/servlet/jstl/

Nota: Esto no es culpa de STS, esto sólo sucede cuando un artefacto fue dañado al ser descargado de Internet. Al eliminar el arfifact se aplicará force Maven2 para volver a descargarlo. Finalmente, podría suceder con cualquier artefacto/archivo descargado de la web.

12

pidió a un varias veces antes en StackOverflow: Unable to read TLD "META-INF/c.tld"

que hice un blog una posible respuesta a esto una vez: http://blog.flurdy.com/2010/07/jetty-tomcat-jsp.html

Dependiendo de si el proyecto utiliza experto tendrá que garantizar jsp-api no es incluido, pero proporcionado por Tomcat no por ejemplo:

<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> 
<dependency> 
    <groupId>org.apache.tomcat</groupId> 
    <artifactId>jasper-el</artifactId> 
    <version>6.0.26</version> 
</dependency> 
1

Con Eclipse, Por favor, asegúrese de que ha instalado 'Maven Integration for Eclipse WTP ' Con otro plug-in sin DAP, Eclipse cambiar la ruta de clases e incluyen servlet-api.jar en sus aplicaciones web.

5

No empaquete javax.servlet.jsp.jar con su aplicación web, confunde Tomcat: P

Estábamos recibiendo el mismo error exacto, eliminando javax.servlet.jsp.jar de la WEB-INF/lib lo ordenó

0

El mismo valor predeterminado me acompaña hoy. Esto es un error causado por servlet-api.jar y jsp-api.jar, y es posible que esta dos en desarrollar código, así que asegúrese de que aparezcan en su pom.xml con proporcionado. Parece que funciona bien conmigo

<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> 
Cuestiones relacionadas