Tomcat:可以在应用程序部署期间排除 jar 吗?

Tomcat:可以在应用程序部署期间排除 jar 吗?

默认情况下,Tomcat 会阻止 webapps 加载属于 Tomcat 分发版的多个 .jar(例如 servlet 和 JSP API)——是否可以配置其他 .jar 以将其也排除?

如果无法仅通过配置来完成,Tomcat 是否提供了任何用于资源验证的扩展点?

我想使用共享日志库,并且需要确保错误的应用程序不会破坏配置。

例子

这就是我所指的(来自 Tomcat 启动日志):

Oct 1, 2011 5:53:40 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(D:\tomcat\myapp\WEB-INF\lib\servlet-api.jar) - jar not loaded.
See Servlet Spec 2.3, section 9.7.2.
Offending class: javax/servlet/Servlet.class

答案1

你可以使用从中扩展的自定义加载器来检查/过滤哪些 Web 应用可以加载,org.apache.catalina.loader.WebappClassLoaderTomcat 文档

查看Tomcat 对该标准的实现(7.0.19)WebAppClassLoader实现过滤javax.servlet.Servlet开始吧。覆盖该类并向字段protected String[]triggers中放入更多条目可能就足够了packageTriggers

相关内容