gpt4 book ai didi

java - 无法从 JAR 文件错误中读取 TLD "META-INF/stripes.tld"

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:31 25 4
gpt4 key购买 nike

在将我们的 Web 应用程序主要升级到 ivy 以进行构建管理之后,我遇到了一些不寻常的错误,其中还包括更新所有涉及的主要库。当我们设法通过单元测试时,当我们将 Web 应用程序部署到 Tomcat 并尝试在浏览器中导航到它时,我们收到以下错误:

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

我已经检查了通常的嫌疑人并验证了 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)

最佳答案

这实际上花了一些时间来追查,因为错误消息并不完全反射(reflect)实际问题是什么,但简而言之,这是一个类似的听起来错误(即“无法读取 TLD “META-INF/*.tld “来自 JAR 文件”)似乎在您已部署的 JAR 文件与 Tomcat 本身部署的文件之间存在类冲突时发生。事实证明我的错误就是这种情况,因为存在两个冲突的文件(javax.servlet.jsp-api-2.2.1.jar 和 el-api-1.0.jar)。

由于这个问题似乎经常弹出,这里有一些故障排除提示:

  • 仔细检查您正在部署的内容,确保没有任何意外,如果您使用依赖管理器,请确保依赖项的依赖性不会给您带来问题。
  • 仔细检查以确保您已清除以前版本中的所有内容并重新部署,令人惊讶的是,这不止一次让我感到沮丧。
  • 不要将 servlet-api.jar 直接包含在您自己的库中,而是使用具有可变路径的外部 JAR - guide .
  • 不要指望 JAR 文件会按照您的预期命名,也不要指望它们不包含您认为它们不会包含的内容,如果您必须打开它们以仔细检查内容。

关于java - 无法从 JAR 文件错误中读取 TLD "META-INF/stripes.tld",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com