2009-11-27 4 views
0

Они говорят, что закрытое заседание в спящий режим и веб-приложение с помощью AJAX является общей проблемой, с Явы и весной, так что я должен установить OpenSessionInViewInFilter в web.xml, как этотDWR/OpenSessionInView «Сессия закрыта!» в Java и Hibernate

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener>  
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/applicationContext.xml 
    </param-value> 
</context-param> 
<filter> 
    <filter-name>springFilter</filter-name> 
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>springFilter</filter-name> 
    <url-pattern>/dwr/*</url-pattern> 
</filter-mapping> 

Но даже с что я получаю «сессия закрыта» спящий режим исключения, когда я пытаюсь использовать критерии Hibernate API, так что я попробовал другой пружинный путь, используя OpenSessioninViewInterceptor

<bean id="urlMapping" 
    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="alwaysUseFullPath" value="false"/> 
    <property name="mappings"> 
      <props> 
       <prop key="*">dwrController</prop> 
      </props> 
    </property> 
    <property name="interceptors"> 

и перехватчик

<bean id="openSessionInViewInterceptor"class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor"> 

Same "Сессия закрыта" проблема. Пожалуйста, помогите мне здесь. Я новичок в Java, поэтому ваша помощь очень ценится.

Я в настоящее время работает внутри плагина причала maven, версия 6.1.10.

+0

На каком веб-сервере вы работаете? –

+0

Я в настоящее время работает внутри причала maven .. –

ответ

0

Убедитесь, что вы не передадите данные по различным темам. Это особенно удобно, если вы используете ленивую загрузку (проверьте настройки по умолчанию для спящего режима).

Скажите, если объект Y ленив загружен и ссылается на объект X (через Hibernate), и вы передаете X из одного потока в другой, а в этом другом потоке вы выполняете x.getY(), у вас проблемы.

0

Найдено. Мне нужно объявить @Transactional в моем классе обслуживания.