2009-10-14 6 views
2

ContexteDWR + printemps + JPA Session fermée

L'application Je travaille sur utilise actuellement Spring + JPA. Tout fonctionnait bien avant que nous décidions d'introduire DWR. En utilisant DWR, j'appelle une méthode sur une classe Service et elle redirige ensuite vers le contrôleur. Après cela, lorsque la méthode de recherche est appelée au DAO, elle ne trouve pas de session de plume.

Session session = (Session) entityManager.getDelegate(); 

Cette session ici est fermé ...

Je pense que mes changements (de l'introduction DWR) ne doivent en aucun cas affecter la création de session.

En attente d'entrées.

Shardul.

+0

Comment sont traitées vos sessions de base de données? – fglez

+0

J'utilise le regroupement de connexions, si c'est ce que vous vouliez demander. Une autre chose que j'ai remarquée est qu'il semble que la requête envoyée au contrôleur en utilisant WebContextFactory .... est en quelque sorte incapable de se lier à l'EntityManager existant et il essaye de créer un nouvel EntityManager ... il ferme plus tard l'EntityManager ... Je poste la trace suivante ... –

Répondre

1

Problème résolu.

Le problème résidait dans la configuration de OpenEntityManagerInViewFilter dans le fichier web.xml. Il n'interceptait pas les demandes DWR car il était mappé à un

*.faire

au lieu de

/*

Shardul.

0

Ceci est la trace que je reçois dans les journaux ....


13:56:55,501 DEBUG DefaultAnnotationHandlerMapping:176 - Mapping [/search.do] to handler '[email protected]' 

13:56:55,517 DEBUG HandlerMethodInvoker:134 - Invoking request handler method: public java.lang.String com.xxxxx.controller.YGSearchController.search(java.lang.String,java.lang.String,int,int,boolean,boolean,javax.servlet.http.HttpServletRequest,org.springframework.ui.Model) 

13:56:55,517 DEBUG YGGenericDAO:29 - YGPropertyDAOImpl : In getPropertyIdsForName for Search Strings 

13:56:55,517 DEBUG SharedEntityManagerCreator$SharedEntityManagerInvocationHandler:189 - Creating new EntityManager for shared EntityManager invocation 

13:56:55,517 DEBUG SessionImpl:247 - opened session at timestamp: 12555088155 

13:56:55,517 DEBUG EntityManagerFactoryUtils:313 - Closing JPA EntityManager 

La session est ouverte et fermée avant que la demande est entièrement traitée ...


13: 56: 55,532 DEBUG DispatcherServlet: 588 - Impossible d'accéder à demande complète java.lang.NullPointerException à com.x.service.impl.YGSearchServiceImpl.search (YGSearchServiceImpl.java:101)


Ceci est la trace de la console


org.hibernate.SessionException: La session est fermée! à org.hibernate.impl.AbstractSessionImpl.errorIfClosed (AbstractSessionImpl.java:72) à

org.hibernate.impl.SessionImpl.createCriteria (SessionImpl.java:1535) à com.x.dao.impl .YGPropertyDAOImpl.getPropertyIdsForName (YGPropertyDAOImpl.java:32)


Des commentaires?

Questions connexes