Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как влияет контейнер на управление classpath? / 7 сообщений из 7, страница 1 из 1
17.06.2015, 19:11
    #38986228
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет контейнер на управление classpath?
Заметили вот такое вот явление:

Есть приложение, которое собирается мавеном.

При запуске приложения из под джетти всё ок.

А при запуске из под томката(8)
вываливается следующая ошибка:
авторERROR: org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'systemGroupDaoImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory com.terminal.dao.impl.SystemGroupDaoImpl.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [META-INF/dataContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

Причина в принципе ясна. В classpath 2 либы jpa. jpa 2.0 и jpa 2.1. В одной версии либы есть такой-то метод, а в другой нет.

Но у меня есть непонимание того какая разница какой контейнер используется. В чем разница ? как контейнер влияет на classpath ?


P.S.
scope provided не используется
...
Рейтинг: 0 / 0
17.06.2015, 19:17
    #38986232
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет контейнер на управление classpath?
...
Рейтинг: 0 / 0
17.06.2015, 19:59
    #38986251
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет контейнер на управление classpath?
Basil A. Sidorov,

Ну если честно мне это особо не помогло.

Получается, что у нас один и тот же варник, который собирает мавен в обоих случаях и разные контейнеры его по разному загружают.
...
Рейтинг: 0 / 0
17.06.2015, 20:31
    #38986265
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет контейнер на управление classpath?
questionerПолучается, что у нас один и тот же варник, который собирает мавен в обоих случаях и разные контейнеры его по разному загружают.
Когда все jar-ы свалены в кучу, порядок загрузки никто не гарантирует. Google -> Jar Hell
...
Рейтинг: 0 / 0
17.06.2015, 23:34
    #38986344
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет контейнер на управление classpath?
BlazkowiczquestionerПолучается, что у нас один и тот же варник, который собирает мавен в обоих случаях и разные контейнеры его по разному загружают.
Когда все jar-ы свалены в кучу, порядок загрузки никто не гарантирует. Google -> Jar Hell

А проблема кстати в том, что нельзя загрузить 2 класса с одним именем или именно в том, 2 версии либы нельзя загрузить?
...
Рейтинг: 0 / 0
18.06.2015, 07:33
    #38986438
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет контейнер на управление classpath?
questionerА проблема кстати в том, что нельзя загрузить 2 класса с одним именем или именно в том, 2 версии либы нельзя загрузить?
И то и другое. В контексте одного Classloader-а нельзя иметь две либы разных версий, потому что у них, обычно, разные классы с одинаковыми именами.
...
Рейтинг: 0 / 0
18.06.2015, 15:58
    #38987092
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет контейнер на управление classpath?
questionerПолучается, что у нас один и тот же варник, который собирает мавен в обоих случаях и разные контейнеры его по разному загружают.Я придерживаюсь простого правила - контейнер должен содержать единственную версию каждой библиотеки.
Более того, если контейнер хостит несколько приложений, использующих одну библиотеку - я размещу её в общем загрузчике и уберу из прикладных. Если, конечно, к этому нет препятствий.
Ну а способы разрешения конфликтов могут быть разными. Насколько я понимаю - Tomcat полностью делегирует эту проблему системному администратору, Jetty - пытается (как-то) выкрутится самостоятельно.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как влияет контейнер на управление classpath? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]