Bonjour à tous,
Après avoir chercher à mainte reprise de sur le web, je m'en remet à vous pour m'aider à trouver une solution à mon problème.
Je développe une application web JEE avec le framework Spring MVC couplée avec Hibernate pour la persistance des données.
Tout fonctionne très bien excepté un nouveau dév que je voudrais effectuer.
Il s'agit en fait d'un tâche qui s’exécute de temps en temps en fonction d'un temps donné.
Pour cela j'ai configuré le context de mon application comme suit :
Dans ma méthode "reportCurrentTime()" j'ai tenté de faire appel à des services de mon application qui vont manipuler les données en base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <!-- Paramètrage de tâches périodique --> <context:component-scan base-package="com.websystique.spring.scheduling" /> <task:scheduled-tasks scheduler="myScheduler"> <task:scheduled ref="scheduledTasks" method="reportCurrentTime" fixed-delay="5000" /> </task:scheduled-tasks> <task:scheduler id="myScheduler"/>
J'ai par exemple souhaité récupérer la liste des entités d'un certain type mais quand j'ai voulu connaitre la taille de cette liste récupérée, une exception a été levée :
La session (hibernate?) ne reste pas ouverte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.amilnote.project.metier.domain.entities.Collaborateur.rapportActivites, could not initialize proxy - no Session
J'ai l'impression que cela est dû au fait que cette tâche s'exécute sur un thread différent et que par conséquent la session n'est pas valide pour celui-ci.
J'attends avec impatience vos éventuels éclaircissements.
Cordialement,
Ekreen
Partager