Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法读取TLD";META-INF/stripes.tld“;从JAR文件错误_Java_Tomcat_Stripes - Fatal编程技术网

Java 无法读取TLD";META-INF/stripes.tld“;从JAR文件错误

Java 无法读取TLD";META-INF/stripes.tld“;从JAR文件错误,java,tomcat,stripes,Java,Tomcat,Stripes,在我们的web应用程序升级到ivy for build management之后,我遇到了一个不寻常的错误,其中还包括更新所有涉及的主要库。当我们设法通过单元测试时,当我们将web应用程序部署到Tomcat并尝试在浏览器中导航到它时,会出现以下错误: org.apache.jasper.JasperException:/index.jsp(1,1) /layout/taglibs.jsp(2,77)无法读取TLD“META-INF/stripes.TLD” 从JAR文件 “文件:/Library

在我们的web应用程序升级到ivy for build management之后,我遇到了一个不寻常的错误,其中还包括更新所有涉及的主要库。当我们设法通过单元测试时,当我们将web应用程序部署到Tomcat并尝试在浏览器中导航到它时,会出现以下错误:

org.apache.jasper.JasperException:/index.jsp(1,1) /layout/taglibs.jsp(2,77)无法读取TLD“META-INF/stripes.TLD” 从JAR文件 “文件:/Library/Tomcat/apache-Tomcat-6.0.32/webapps/cga/WEB-INF/lib/stripes-1.5.6.jar”: org.apache.jasper.jaspereException:加载或实例化失败 TagExtraInfo类:net.sourceforge.strips.tag.ErrorsTagExtraInfo

我已经检查了常见的疑点,并验证了jar文件是否位于正确的位置,tld文件是否存在于jar中,等等。同样,搜索错误只显示有限数量的返回,主要与具有相同错误的邮件列表问题有关。我读过那篇文章,也尝试过那些解决方案,但运气不太好

关于是什么导致了这个错误,有什么想法吗

我收到的完整错误跟踪如下所示:

org.apache.jasper.JasperException: /index.jsp(1,1) /layout/taglibs.jsp(2,77) Unable to read TLD "META-INF/stripes.tld" from JAR file "file:/Library/Tomcat/apache-tomcat-6.0.32/webapps/cga/WEB-INF/lib/stripes-1.5.6.jar": org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: net.sourceforge.stripes.tag.ErrorsTagExtraInfo
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
    org.apache.jasper.compiler.Parser.processIncludeDirective(Parser.java:300)
    org.apache.jasper.compiler.Parser.parseIncludeDirective(Parser.java:333)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:442)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1397)
    org.apache.jasper.compiler.Parser.parse(Parser.java:130)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:185)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:347)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:326)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

这实际上花了一段时间来追查,因为错误消息并不完全反映实际的问题,但在一个螺母壳中,这是一个类似的错误(即“无法从JAR文件中读取TLD”META-INF/*.TLD”)当您所部署的JAR文件与Tomcat本身所部署的JAR文件之间存在类冲突时,似乎会发生这种情况。这就是我的错误,因为有两个文件(javax.servlet.jsp-api-2.2.1.jar和el-api-1.0.jar)存在冲突

由于此问题似乎经常出现,以下是一些疑难解答提示:

  • 仔细检查您正在部署的内容以确保没有意外情况,如果您使用的是依赖项管理器,请确保依赖项的依赖项没有给您带来问题
  • 仔细检查以确保您已经清除了以前版本中的所有内容并再次部署,令人惊讶的是,这不止一次让我感到沮丧
  • 不要将servlet-api.jar直接包含在您自己的lib中,而是使用带有变量路径的外部jar-
  • 不要期望JAR文件的名称与您期望的一致,也不要期望它们不包含您认为它们不会包含的内容,如果必须的话,请打开它们以仔细检查内容