Невозможно запустить страницу jsp, содержащую теги jstl. говорит ... Невозможно прочитать TLD "META-INF / c.tld" - PullRequest
1 голос
/ 22 марта 2012

Я работаю над проектом Maven, в котором я хочу использовать JSTL.Сначала файл jsp показывал исключение, подобное classnotfound, и не смог найти org.apache.taglib.standard .....

, затем я искал и добавил файл c.tld в папку web-inf / tags / template итакже добавил путь в web.xml, я попытался сохранить его в тегах web-inf /, но произошло то же исключение, я также добавил jstl.jar и standard.jar в папку web-inf / lib

У меня также естьдобавлены зависимости от 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>

Версия сервлета 2.5

, после всего этого он не работает ... :( выдает следующие ошибки ..

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.NewFile_jsp
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177)
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)

основная причина

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)

Я работаю с проектом maven, сервером eclipse indigo и sap netweaver neo, который используетдерби дБ

1 Ответ

0 голосов
/ 22 марта 2012

затем я искал и добавил файл c.tld в папку web-inf / tags / template

Это неправильно.Убери это.

, а также добавил путь в web.xml

Это тоже не правильно.Удалите его.

я пытался сохранить его в web-inf / tags

Это тоже не правильно.Удалите его.

Установка JSTL должна быть связана с наличием JSTL API и файла JAR impl в папке /WEB-INF/lib.Больше ничего не нужно делать.Вы должны убедиться, что ваша конфигурация Maven делает это.Пока что все выглядит нормально для JSTL 1.1, но ваша зависимость от JSP неверна для Servlet 2.5.Версия JSP должна быть 2.1.

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

Не забудьте объявить правильный URI taglib в верхней части JSP, если вы хотите использовать JSTL:

<%@taglib prefix="c" uri="http://java.sun.som/jsp/jstl/core" %>

См. Также:

...