По умолчанию Tomcat не позволяет веб-приложениям загружать несколько файлов .jar, которые являются частью дистрибутива Tomcat (например, сервлет и API-интерфейсы JSP). Можно ли настроить другие, которые также будут исключены?
Если это невозможно сделать только с помощью конфигурации, предоставляет ли 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
Ответы:
Вы проверяете / фильтруете, какие веб-приложения загружаются, используя пользовательский загрузчик, начиная с
org.apache.catalina.loader.WebappClassLoader
упомянутого в документации Tomcat .Проверьте реализацию Tomcat (7.0.19) стандарта,
WebAppClassLoader
который реализует фильтрациюjavax.servlet.Servlet
для начала. Вероятно, достаточно переопределить этот класс и просто добавить еще несколько записей вprotected String[]
поляtriggers
иpackageTriggers
.источник
WebappClassLoader
должен входить в собственный JAR-TOMCAT_HOME/lib
файл вдали от ваших веб-приложений, просто чтобы заявить очевидное :)