tomcat - 将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 下的文件夹?有人知道如何改变这个吗?
解决方案
所以经过几次测试,我找到了解决方案。
显然对于新版本的 Struts,加载文件和搜索库的方式不同,基本上我所做的就是将文件的路径更改为:
<%@ taglib prefix="gam" uri="/WEB-INF/include/gam-html.tld"%>
因此,只需将文件移至此处,它应该可以工作。如果有人找到另一种解决方案,我会很高兴阅读它,因为这实际上是一种解决方法。
推荐阅读
- generics - 使用泛型重构 3 个调用以使用 LINQ 获取 3 个新实例时出错
- javascript - 如何让getter返回一个promise
- php - 获取用户 laravel api axios
- arrays - 列指定条件下一个元素需要满足的排序矩阵
- r - 使用 R 从两个数据帧中选择并比较两个元素
- java - 将整数转换为十进制到十进制
- perforce - 如何为 Perforce (Helix Core 2020.2) 配置不同的日志文件夹
- r - R:使用数据集优化函数
- arrays - 检查可被 2 整除的数字并在 Kotlin 中打印
- nagios - CHECK_NRPE 无法连接到...:连接由 Nagios NRPE 中的对等方重置