У меня возникает эта странная проблема с серверами tomcat 5.5 и tomcat 6.0. У меня есть два веб-приложения, которые будут установлены на tomcat. При запуске tomcat эти два веб-приложения также запускаются одновременно, но иногда одно веб-приложение не может инициализироваться из-за сбоя init в одном приложении, при запуске другого приложения возникают ошибки classnotfoundexception. В tomcat 7.0 приложение работает нормально, даже если другое приложение не удалось инициализировать.
После некоторой отладки я узнал, что есть одна банка с именем crystal.jar, которая находится в папке web-inf/lib обоих приложений. Я переместил банку в общую папку /lib tomcat, после чего начал работать нормально. Я хочу знать, почему он отлично работает в tomcat 7.0, а не в версиях tomcat 5.x и tomcat 6.x. Есть ли какие-либо изменения в архитектуре загрузки классов между этими версиями?
Спасибо
EDIT1: Библиотека находилась в каталоге обоих приложений WEB-INF\lib, и они не имеют зависимости от внешних DLLS. Только сейчас я прочитал о архитектуре classloader tomcat 5.5 и узнал, что у каждого веб-приложения есть свой собственный загрузчик классов. Библиотеки в папке WEB-INF\lib и папках будут загружены в этот загрузчик классов. Библиотеки, которые хранятся в общем каталоге, будут помещены в общий загрузчик классов. Затем эту библиотеку следует загружать отдельно в отдельном загрузчике классов веб-приложения. Там, даже если одно веб-приложение не запускается, другое веб-приложение должно работать независимо. Вот почему я чувствовал себя странно и нужно исследовать фурт.