2009-11-27 3 views
0

Ils disent qu'une séance à huis clos en veille prolongée et webapp avec ajax est un problème commun avec java et au printemps, donc je dois mettre l'OpenSessionInViewInFilter dans le web.xml comme celui-ciDWR/OpenSessionInView "La session est fermée!" en Java et 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> 

Mais même avec que je reçois la "session est fermée" exception veille prolongée lorsque je tente d'utiliser des critères d'Hibernate api, donc j'ai essayé une autre façon de ressort à l'aide 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"> 

problème

et l'intercepteur

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

même "session est fermée". S'il vous plaît aidez-moi ici. Je suis nouveau en Java et votre aide est très appréciée.

Je suis actuellement en cours d'exécution dans le plugin maven's jetty, version 6.1.10.

+0

Sur quel serveur web travaillez-vous? –

+0

Je cours actuellement à l'intérieur de la jetée de Maven .. –

Répondre

0

Assurez-vous de ne pas transmettre les données à travers différents threads. Cela est particulièrement facile si vous utilisez un chargement paresseux (vérifiez vos paramètres de mise en correspondance d'hibernation). Dites si une entité Y est paresseuse et est référencée depuis l'entité X (via Hibernate) et que vous passez X d'un thread à un autre et dans ce thread vous faites x.getY(), vous êtes en difficulté.

0

Trouvé. Je dois déclarer @Transactional dans ma classe de service.

Questions connexes