Я использую Tomcat в качестве контейнера сервлета, и у меня развернуто много WAR.Многие из WAR имеют общие базовые классы, которые реплицируются в каждом контексте из-за разных загрузчиков классов и т. Д.
Как обеспечить очистку ресурса при уничтожении контекста, не подключая каждый файл web.xml для добавленияслушатели контекста?
В идеале, я хотел бы что-то вроде
class MyResourceHolder implements SomeListenerInterface {
private SomeResource resource;
{
SomeContextThingie.registerDestructionListener(this);
}
public void onDestroy() { resource.close(); }
}
I мог бы поместить что-то в каждый файл web.xml, но, поскольку естьдля его очистки требуется много WAR-файлов и только те, которые фактически инициализируют ресурс, более естественным является регистрация для очистки при инициализации ресурса, а не дублирование большой части конфигурации XML и затем возможно очистка.
(В данном конкретном случае я инициирую упорядоченное завершение пула соединений SQL. Но я считаю, что это полезно и во многих других ситуациях ...)
Я уверенесть какое-то чертовски очевидное решение, но мой Google-фу сейчас меня подводит.Спасибо!