Ошибка ClassNotFoundException в Tomcat 5.5 и Tomcat 6.0

У меня странная проблема с серверами tomcat 5.5 и tomcat 6.0. У меня есть два веб-приложения, которые будут установлены на tomcat. Когда tomcat запускается, эти два веб-приложения также запускаются одновременно, но иногда одно веб-приложение не инициализируется из-за сбоя инициализации в одном приложении, другое приложение получает ошибки classnotfoundException во время работы. В tomcat 7.0 приложение работает нормально, даже если другое приложение не удалось инициализировать.

После некоторой отладки я узнал, что есть один jar-файл с именем crystal.jar, который находится в папке web-inf/lib обоих приложений. Я переместил банку в папку common/lib tomcat, после чего она начала работать нормально. Я хочу знать, почему он отлично работает в tomcat 7.0, а не в версиях tomcat 5.x и tomcat 6.x. Есть ли какие-либо изменения в архитектуре загрузки классов между этими версиями?

Спасибо

EDIT1:Библиотека находилась в каталоге обоих приложений WEB-INF\lib, и они не имеют зависимости от внешней библиотеки DLL. Только что я прочитал об архитектуре загрузчика классов tomcat 5.5 и узнал, что каждое веб-приложение имеет свой собственный загрузчик классов. Библиотеки в папке WEB-INF\lib и папке классов будут загружены в этот загрузчик классов.Библиотеки, хранящиеся в общем каталоге, будут помещены в общий загрузчик классов. Затем эта библиотека должна быть загружена отдельно в отдельный загрузчик классов веб-приложения. Таким образом, даже если одно веб-приложение не запускается, другое веб-приложение должно работать независимо. Вот почему я чувствовал себя странно и нуждался в дальнейшем расследовании.

7
задан Dungeon Hunter 10 June 2012 в 05:12
поделиться