Java

Tomcat:可以在應用程序部署期間排除 jars?

  • February 11, 2019

預設情況下,Tomcat 會阻止 webapps 載入多個 .jar,這些 .jar 是 Tomcat 發行版的一部分(例如 servlet 和 JSP API)——是否可以將其他配置也排除在外?

如果僅靠配置無法完成,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

您可以使用Tomcat 文件org.apache.catalina.loader.WebappClassLoader中提到的自定義載入程序來檢查/過濾哪些 Web 應用程序載入。

查看Tomcat 的實現 (7.0.19) 的WebAppClassLoader實現過濾的javax.servlet.Servlet標準以開始使用。覆蓋該類並在protected String[]欄位triggerspackageTriggers.

引用自:https://serverfault.com/questions/317901