首页 > 解决方案 > 将tomcat7迁移到tomcat9后找不到taglib

问题描述

我在迁移到 Tomcat7 到 Tomcat9 时遇到问题。

我正在尝试部署我的网络应用程序,但我一直遇到同样的错误:

org.apache.jasper.JasperException: /tiles/layout.jsp (Zeile: [5], Spalte: [0]) Unable to find taglib [myTagLib] for URI: [/META-INF/myTagLib.tld]

当然我没有改变我的应用程序的结构,所以我不明白问题出在哪里。我试图更改 Taglib 的路径,但它不起作用。

这是我的定义:文件layout.jsp

<%@ include file="/WEB-INF/include/taglibs.jsp" %>

文件taglibs.jsp

<%@ taglib prefix="gam" uri="/META-INF/gam-html.tld"%>

这里有两张截图显示了 Eclipse 和 Explorer 上的文件系统(请注意,由于隐私问题,文件名已被划掉):

蚀

探险家

我研究过,似乎 tomcat 9 执行与以前版本不同的 taglib 扫描: https ://talk.openmrs.org/t/unable-to-find-taglib-c-for-uri-web-inf-view-模块-legacyui-taglibs-c-rt-tld/10832/5

有人知道在这里做什么吗?提前非常感谢。

更新 我刚刚意识到,如果我将文件移动到 web-inf 下的任何文件夹并修改它的工作 URI。我将它移动到与 taglibs.jsp 相同的文件夹WEB-INF/include/myTaglib.tld 显然扫描仅适用于 web-inf 下的文件夹?有人知道如何改变这个吗?

标签: tomcatmigrationtomcat7tomcat9appserver

解决方案


所以经过几次测试,我找到了解决方案。

显然对于新版本的 Struts,加载文件和搜索库的方式不同,基本上我所做的就是将文件的路径更改为:

<%@ taglib prefix="gam" uri="/WEB-INF/include/gam-html.tld"%>

因此,只需将文件移至此处,它应该可以工作。如果有人找到另一种解决方案,我会很高兴阅读它,因为这实际上是一种解决方法。


推荐阅读