Мой вопрос: как мне заставить jboss загрузить jar-файл драйвера postgres из-под web-inf / lib?
Насколько мне известно, это невозможно. Проще говоря, загрузчики классов расположены в дереве «родитель-потомок». Когда загрузчику классов предлагается загрузить определенный класс, он сначала делегирует запрос загрузчику родительского класса, а затем просматривает свой собственный уровень, если загрузчик (и) родительского класса не может найти запрошенный класс.
Таким образом, хотя классы, загруженные загрузчиком родительских классов (например, загрузчиком классов сервера), видны из загрузчика дочерних классов (например, загрузчика классов webapp), обратное неверно.
Другими словами, загрузчик классов, используемый для загрузки классов Hibernate, не может видеть классы из веб-приложения и, следовательно, не может загрузить драйвер, если вы не установите его на том же уровне (или выше в иерархии).
Подводя итог, можно сказать, что единственный способ сохранить драйвер на уровне веб-приложения - это связать файлы Jibernate в веб-приложении и отключить родительское делегирование, чтобы файлы Jiber Hibernate из веб-приложения могли вместо этого использовались те из JBoss.
В каких сценариях мы должны использовать jibernate jar по умолчанию (...)
Обычно при использовании JPA с менеджером сущностей, управляемым контейнером.
Ресурсы