关闭Tomcat的TLD扫描功能

 时间:2026-04-26 02:47:01

1、看 Tomcat 的配置文档,关于 Context 的设置这一块,看到了 processTlds 这个属性可以设置,看下这个属性的说明:

Whether the context should process TLDs on startup. The default is true. The false setting is intended for special cases that know in advance TLDs are not part of the webapp.

只要在 Context 中把这个属性设置成 false,那么我们就可以关闭 Tomcat 的 TLD 扫描功能了,为了让所有的应用都可以关闭这个功能,我们可以将 Tomcat 目录下的 conf/context.xml 修改成如下这样:

关闭Tomcat的TLD扫描功能

2、在 Tomcat 6 中测试的时候,发现这个功能没有生效,无奈只能 Debug Tomcat 的源码,发现 StandardContext 的 init 方法下有如下代码:

关闭Tomcat的TLD扫描功能

3、这里需要说明的一点是,我们的默认的 context 配置是在 lifecycle.fireLifecycleEvent(INIT_EVENT, null); 这行代码中被处理的,而在这行代码之前,Tomcat 就已经使用了 processTlds,我们的配置完全没有生效。

那么,这么解决呢?在 context 中,我们还可以配置一个 JarScanner,这个 JarScanner 会被用来扫描 Jar 包中的 tld 文件,我们可以在默认的 context.xml 中配置一个空的 JarScanner,像下面这样:

关闭Tomcat的TLD扫描功能

4、NullJarScanner 的代码如下:

关闭Tomcat的TLD扫描功能

5、需要注意的是,Tomcat 7 不会出现上述的问题,你只要在配置中把 processTlds 设置成 false 即可。

  • LoadRunner怎么参数化数据?
  • eclipse设置缩进换行的宽度
  • Linux 平台安装Oracle Database 12c详细步骤
  • 怎么从数据库里查出路径显示在页面上
  • 如何查看PostgreSQL是否安装成功
  • 热门搜索
    下面有异味怎么办 nose怎么读 吉祥航空怎么样 山水音响怎么样 安宫牛黄丸怎么吃 文档页码怎么设置 辣椒酱怎么做 榕树盆景怎么养 脂肪肝是怎么引起的 怎么增强免疫力