无法运行包含jstl标记的jsp页面。表示..无法读取TLD“;META-INF/c.tld”;

无法运行包含jstl标记的jsp页面。表示..无法读取TLD“;META-INF/c.tld”;,jsp,jakarta-ee,maven,jstl,Jsp,Jakarta Ee,Maven,Jstl,我正在从事一个maven项目,我想在其中使用jstl。最初jsp文件显示异常,如classnotfound,无法找到org.apache.taglib.standard 然后我在web inf/tags/template文件夹中搜索并添加了c.tld文件,并在web.xml中添加了路径。我也尝试将其保存在web inf/tags中,但出现了相同的异常 我还在web inf/lib文件夹中添加了jstl.jar和standard.jar 我还添加了pom.xml上的依赖项 <dependen

我正在从事一个maven项目,我想在其中使用jstl。最初jsp文件显示异常,如classnotfound,无法找到org.apache.taglib.standard

然后我在web inf/tags/template文件夹中搜索并添加了c.tld文件,并在web.xml中添加了路径。我也尝试将其保存在web inf/tags中,但出现了相同的异常 我还在web inf/lib文件夹中添加了jstl.jar和standard.jar

我还添加了pom.xml上的依赖项

<dependency>
            <groupId>com.sap.jpaas.service.securestore</groupId>
            <artifactId>
                com.sap.jpaas.service.securestore.feature
            </artifactId>
            <version>0.1.2</version>
        </dependency>
        <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>jstl</artifactId>
           <version>1.1.2</version>
        </dependency>

        <dependency>   
          <groupId>taglibs</groupId> 
          <artifactId>standard</artifactId> 
          <version>1.1.2</version> 
        </dependency>
        <dependency>   
          <groupId>javax.servlet.jsp</groupId> 
          <artifactId>jsp-api</artifactId> 
          <version>2.0</version>
          <scope>provided</scope>
</dependency>
根本原因

java.lang.ClassNotFoundException: org.apache.jsp.NewFile_jsp
    java.net.URLClassLoader$1.run(Unknown Source)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(Unknown Source)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
    org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:271)
    java.security.AccessController.doPrivileged(Native Method)
    javax.security.auth.Subject.doAsPrivileged(Unknown Source)
    org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:306)
    org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:166)
刷新后会出现以下错误

org.apache.jasper.JasperException: /NewFile.jsp (line: 3, column: 65) Unable to read TLD "META-INF/c.tld" from JAR file "file:/C:/Users/i069130/eclipse/Jpaas-Workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/com.sap.javax.servlet.jsp.jstl_1.2.0.BUILD-20100618.jar": org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:219)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:182)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1427)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:271)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Unknown Source)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:306)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:166)
org.apache.jasper.JasperException:/NewFile.jsp(第3行,第65列)无法从JAR文件/c:/Users/i069130/eclipse/Jpaas Workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle\u pool/plugins/com.sap.javax.servlet.jsp.jstl\u 1.2.0.BUILD-20100618.JAR”中读取TLD“META-INF/c.TLD”:org.apache.jasper.jaspereException:未能加载或实例化TagLibraryValidator类:org.apache.taglibs.standard.tlv.JstlCoreTLV
org.apache.jasper.compiler.DefaultErrorHandler.jsperor(DefaultErrorHandler.java:42)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)
org.apache.jasper.compiler.ErrorDispatcher.jsperor(ErrorDispatcher.java:219)
TagLibraryInfoImpl.java:182
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1427)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
org.apache.jasper.compiler.compiler.generateJava(compiler.java:198)
org.apache.jasper.compiler.compiler.compile(compiler.java:373)
org.apache.jasper.compiler.compiler.compile(compiler.java:353)
org.apache.jasper.compiler.compiler.compile(compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javaservlet.http.HttpServlet.service(HttpServlet.java:848)
sun.reflect.GeneratedMethodAccessor65.invoke(未知源)
sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)
java.lang.reflect.Method.invoke(未知源)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:271)
java.security.AccessController.doPrivileged(本机方法)
javax.security.auth.Subject.doAsPrivileged(未知源)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:306)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:166)
我正在使用maven项目、EclipseIndigo和使用derby db的sap netweaver neo服务器

然后我在web inf/tags/template文件夹中搜索并添加了c.tld文件

这是不对的。移除它

并在web.xml中添加了路径

这也是不对的。移除它

我试着把它保存在web inf/tags中

这也是不对的。移除它

安装JSTL应该是将JSTLAPI和impl JAR文件放在
/WEB-INF/lib
文件夹中。其他什么都不需要做。您需要确保您的Maven配置正在这样做。到目前为止,JSTL1.1看起来还可以,但Servlet2.5的JSP依赖项是错误的。JSP版本应该是2.1

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

javax.servlet.jsp


进行了更改,但仍然不起作用。。。同样的问题。。org.apache.jasper.JasperException:/NewFile.jsp(第3行,第65列)无法从JAR文件“file:/c:/Users/i069130/eclipse/Jpaas Workspace/.metadata/.plugins/org.eclipse.pde.core/.bundle\u pool/plugins/com.sap.javax.servlet.jsp.jstlu 1.2.0.BUILD-20100618.JAR”中读取TLD“META-INF/c.TLD”:org.apache.jasper.jaspereException:未能加载或实例化TagLibraryValidator类:org.apache.taglibs.standard.tlv.JstlCoreTLV
<dependency>   
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.1</version>
     <scope>provided</scope>
</dependency>
<%@taglib prefix="c" uri="http://java.sun.som/jsp/jstl/core" %>