Из опыта: два веб-приложения полностью изолированы друг от друга - библиотеки для одного не используются в другом - таким образом, чтобы ответить на ваш первоначальный вопрос - да, они будут загружены дважды.
Чтобы ответить на ваш второй вопрос, следует ли развертывать эти библиотеки в общем каталоге Tomcat - я бы сказал, нет, и вот почему:
Если вы развернете библиотеку Jar в общую папку (tomcat / server / lib), то эта версия библиотеки станет версией по умолчанию для всех веб-приложений, работающих под этим экземпляром Tomcat. Как вы можете видеть из этого обзора архитектуры tomcat , загрузчик классов работает "по цепочке", при этом папка lib отдельного веб-приложения является последним местом, которое она будет искать перед тем, как выбросит класс. не найденное исключение. Это не относится к Tomcat 6 и Tomcat 7: любые классы в папке lib и классах веб-приложений будут разрешены раньше, чем общие, и, таким образом, это не сломает другие приложения, которые развертывают все свои банки. на войне 2 .
Следовательно, проблема развертывания разделяемой библиотеки в этом каталоге заключается в том, что она нарушает архитектуру для отдельных приложений, изолированных друг от друга. Хорошо в вашем первоначальном примере, но если вы хотите развернуть стороннее приложение (например, если у вас запущено приложение, которое использует портлеты для обработки определенного содержимого), вы сразу же столкнетесь с проблемами зависимости от версии - ваша общая версия библиотеки может не подходит для стороннего приложения, но поскольку пакет уже загружен, вы будете выбрасывать исключения влево и вправо и по центру.