powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / spring. отношение контекстов.
11 сообщений из 11, страница 1 из 1
spring. отношение контекстов.
    #38489633
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть приложение spring+hibernate
ситуация такая:
есть как обычно dao, service и controller. Для каждого свой пакет.
сервисы помечены @Transactional.

транзакшн менеджер объявлен в рутовом контексте примерно так:
Код: java
1.
2.
3.
4.
5.
<tx:annotation-driven transaction-manager="transactionManager"/>
<!--  Менеджер транзакций  -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>



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

в сервлетном контексте тоже есть эти сканы(особенно важно, что для сервиса как оказалось).

Если запустить приложение в такой конфигурации, то при вызове метода контроллера будет такая ошибка:
авторHTTP Status 500 - Request processing failed; nested exception is org.hibernate.HibernateException: No Hibernate Session bound to thread
Если я делаю так, что скан для сервиса есть только в рутовом контексте(там же где транзакшн менеджер), то всё работает.

Исходя из этого возникает вопрос как относятся контексты?
Как получается, что один контекст может затереть другой?
...
Рейтинг: 0 / 0
spring. отношение контекстов.
    #38489649
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В глобальном контексте должно быть
Код: xml
1.
<context:component-scan base-package="com.project"/>


А в контексте сервлета только для контроллеров
Код: xml
1.
<context:component-scan base-package="com.project.controllers"/>


Этого должно хватать. Если не работает, выкладывай конфиги, явно что-то напортачил.
...
Рейтинг: 0 / 0
spring. отношение контекстов.
    #38489665
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruck,

так и есть. Вы всё верно написали.
я только не понимаю почему если объявить сервис и в рутовом и в сервлетном контексте, то идут прахом все транзакшнлы?
...
Рейтинг: 0 / 0
spring. отношение контекстов.
    #38489686
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты подумай, какой scope у контроллера и у сервиса ))) ...
...
Рейтинг: 0 / 0
spring. отношение контекстов.
    #38489922
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruck,

Я на самом деле этого момента всё никак понять не могу, не понимаю что в этом контексте скопы значат. ведь у меня только один dispatcher servlet.
...
Рейтинг: 0 / 0
spring. отношение контекстов.
    #38490523
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruckВ глобальном контексте должно быть
Код: xml
1.
<context:component-scan base-package="com.project"/>


А в контексте сервлета только для контроллеров
Код: xml
1.
<context:component-scan base-package="com.project.controllers"/>


Этого должно хватать. Если не работает, выкладывай конфиги, явно что-то напортачил.

а если и там и там
Код: java
1.
<context:component-scan base-package="com.project"/>



не должно рабтать?
...
Рейтинг: 0 / 0
spring. отношение контекстов.
    #38490622
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не очень хорошо помню, но вроде как глобальный контекст и сервлетный нужны для вообще разных вещей. Для начала всё можно поместить в сервлетный контекст, а глобальный вообще оставить пустым.
...
Рейтинг: 0 / 0
spring. отношение контекстов.
    #38490708
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем надо объявить менеджер в глобальном контексте, а в сервлетном не забыть
Код: sql
1.
<tx:annotation-driven transaction-manager="transactionManager"/>
...
Рейтинг: 0 / 0
spring. отношение контекстов.
    #38490782
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лагман,

а у меня всё в глобальном
...
Рейтинг: 0 / 0
spring. отношение контекстов.
    #38491166
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервисы и репозитории определяются в глобальном (и прочие компоненты). Контроллеры - в сервлетном.
...
Рейтинг: 0 / 0
spring. отношение контекстов.
    #38491411
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruck,

спасибо, я это понял. теперь хочу понять почему?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / spring. отношение контекстов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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