我遇到了同样的问题,并做了一些研究。
问题是tomcat TldScanner在jar中搜索tld文件。它使用StandardJarScanner并根据Tomcat Issue
59226递归搜索在jar清单中在Class-
Path头下定义的jar
。
为了构造清单中找到的依赖项的路径,它将依赖项名称附加到源jar路径。它适用于同一目录中的jar,例如爆炸war中的lib目录或tomcat
lib目录中的jar,但在从.m2或.gradle缓存构造的类路径的情况下会失败:
从
/Users/bhodgson/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-core/2.2.11/c3f87d654f8d5943cd08592f3f758856544d279a/jaxb-core.jar
与
jaxb-api.jar清单连接,结果路径无效
/Users/bhodgson/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-core/2.2.11/c3f87d654f8d5943cd08592f3f758856544d279a/jaxb-api.jar
例如,当您从IDE启动应用程序时,可能会发生这种情况。



