【问题标题】:Java 11 TLDScanner not loading system TLDsJava 11 TLDScanner 不加载系统 TLD
【发布时间】:2026-01-17 07:50:01
【问题描述】:

我有几个使用 taglibs 示例的 jsp 文件

  • jsp/jstl/core 是系统 tld
  • jsp-tiles

以来 TLDScanner(来自 javax.servlet.jsp 2.3.2)没有加载
  1. 在代码(jstl-1.2.jar)中有一个检查,看看是否 classloader 是 URLClassLoader 的一个实例,从 Java 11 开始 ApplicationClassloader 不是 URLClassloader 它不加载 tld
  2. 尝试在 web-inf/lib 中添加 jstl-1.2.jar 这也不起作用,因为当 isLocal 为 true 时,它​​不会加载系统 tlds

注意:当我们使用 tomcat 时,问题不存在,因为 tomcat 有一个 TLDScanner,它不能像这样工作并且能够在 Java 11 中加载 TLD

谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: java jsp jstl taglib


    【解决方案1】:

    这基本上是码头 TLD 扫描仪的问题,嵌入式 tomcat 不存在问题

    不确定最新的码头是否已解决此问题。

    【讨论】: