Приложение Java EE, выполняющееся в контейнере, имеет путь к классам, состоящий из нескольких уровней:
- путь к классу веб-приложения, представленный файлами JAR и Class, включенными в WEB-INF / lib
- Путь к классу корпоративных приложений, который включает файлы JAR, объявленные на уровне EAR
- Путь к классу контейнера, который содержит библиотеки времени выполнения Websphere и общие библиотеки
Между этими уровнями существуют сложные правила зависимости, но основная идея заключается в том, что все эти библиотеки приложений должны быть включены между этими уровнями, чтобы избежать любых конфликтов, которые могут повредить путь к классам.
Имея это в виду, упрощенным подходом будет поместить все файлы JAR вашего приложения в WEB-INF / lib. Это будет работать, но если в вашем EAR есть два веб-модуля, то для каждого модуля потребуется собственный набор JARS. Более надежный подход будет включать общие JAR-файлы на уровне EAR, чтобы избежать дублирования JAR.
Если дело в том, что в вашей компании есть пропиетальная структура, которую используют все приложения, было бы глупо включать одни и те же JARS в каждое приложение EAR компании. Лучший способ сделать это - настроить инфраструктуру компании как общую библиотеку в контейнере, чтобы ее можно было использовать во всех приложениях.
В заключение, существует несколько факторов, которые определяют путь к классу вашего приложения Java EE. Вы должны всегда помнить, чтобы избежать двуличности и конфликта версий, чтобы ваше приложение могло плавно разрешать его зависимости.