Сервер приложений должен уже использовать любые JAR-файлы в WEB-INF/lib
вместе с путями к библиотекам системы и сервера приложений - стандартный подход к этому заключается в том, что ClassLoader для WEB-INF/lib
делегирует загрузку класса библиотека сервера приложений, которая делегирует загрузку классов на серверную библиотеку, и только если родительский загрузчик классов не может найти класс, он пытается загрузить свои собственные классы.
Другими словами, если вы поместите один и тот же класс в WEB-INF/lib
и в библиотеку сервера приложений, всегда будет использоваться последний JAR. Это означает, что можно создавать конфликты, имея классы с одинаковыми именами, но разными версиями, доступными как в WEB-INF/lib
, так и в библиотеке сервера приложений. Вы уверены, что это не является причиной ваших проблем? Вы можете разрешить конфликт?
Некоторые серверы приложений (не уверен насчет JBoss, но я знаю, что WebSphere позволяет это) позволяет настраивать загрузчик классов так, чтобы сначала проверялся дочерний загрузчик (дочерний сначала против родительского сначала), но этот тип конфигурации может вызвать другие вопросы.