IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Wildfly/JBoss Java Discussion :

Erreur "org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed"


Sujet :

Wildfly/JBoss Java

  1. #1
    Membre régulier
    Profil pro
    informatique
    Inscrit en
    Novembre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 167
    Points : 88
    Points
    88
    Par défaut Erreur "org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed"
    Bonjour a tous , je travaille sur une application web , un user se connecte , remplie une formulaire , les donnes saisite passe par cette methode que voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    public ProcessInstance startNewProcessInstance(String processDefinitionName) {
     
    	        JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
    	        try {/*recupirer le graphe de l'instance*/
    	            GraphSession graphSession = jbpmContext.getGraphSession(); 
    	              /*recupirer le dernier processus déployer*/
     
    	            ProcessDefinition definition = graphSession.findLatestProcessDefinition(processDefinitionName);
     
    	            ProcessInstance instance = definition.createProcessInstance();
    	           	            Token token = instance.getRootToken(); 
    			     System.out.println("**********la premiere tâche  qui doit etre executée est:"+token.getNode().getName());
     
    			     // c'est a partir de cette ligne que mes probleme commenceTaskInstancetach=instance.getTaskMgmtInstance().createStartTaskInstance();
    			      // Now the process is in the state 's'.
    			     // System.out.println("**********la deuxième tâche a executéeest:"+token.getNode().getName());
     
    			     System.out.println("**********la premiere tâche a executéeest:"+token.getNode().getName());
    			     System.out.println("je suis en train d'afficher une task instance(creation)******"+tach);
     
    			    // System.out.println("le reponsable de la taskinstance===="+taskInstance.getActorId());
    			      Map<String, Object> taskVariables = new HashMap<String, Object>();
    			         taskVariables.put("nom", "bendimerad");
    			         taskVariables.put("prenom", "feriel");
    			         taskVariables.put("gradee"," informaticienne");
    			         tach.addVariables(taskVariables);
    			         tach.end("valider");
    			         //fin d'ajout
     
    	            long id = instance.getId(); /*recupirere l'ID de process creer*/
    	            jbpmContext.save(instance); /*enregistrer*/
     
    	            return instance;
    	        } finally {
    	            jbpmContext.close();
    	        }

    les erreurs affiché dans la console sont:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    10:55:04,002 INFO  [STDOUT] **********la premiere tâche  qui doit etre executée est:lancer demande de conge
    10:55:04,008 ERROR [LazyInitializationException] could not initialize proxy - the owning Session was closed
    org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
    	at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:60)
    	at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
    	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:166)
    	at org.jbpm.taskmgmt.def.Task_$$_javassist_29.getName(Task_$$_javassist_29.java)
    	at org.jbpm.taskmgmt.exe.TaskInstance.setTask(TaskInstance.java:100)
    	at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:124)
    	at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createStartTaskInstance(TaskMgmtInstance.java:386)
    	at com.application.beans.JbpmDemandeConge.remplirFormulaire1(JbpmDemandeConge.java:175)
    	at com.application.servlets.jbpmControl.doPost(jbpmControl.java:15)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
    	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    10:55:04,011 ERROR [[jbpmControl]] "Servlet.service()" pour la servlet jbpmControl a généré une exception
    org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
    	at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:60)
    	at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
    	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:166)
    	at org.jbpm.taskmgmt.def.Task_$$_javassist_29.getName(Task_$$_javassist_29.java)
    	at org.jbpm.taskmgmt.exe.TaskInstance.setTask(TaskInstance.java:100)
    	at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:124)
    	at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createStartTaskInstance(TaskMgmtInstance.java:386)
    	at com.application.beans.JbpmDemandeConge.remplirFormulaire1(JbpmDemandeConge.java:175)
    	at com.application.servlets.jbpmControl.doPost(jbpmControl.java:15)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
    	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    j'ai essayé de mettre lazy a false , mais je ne sais pas ou la positionner , si quelqu'un a une idée du probleme

  2. #2
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Ton problème est malheureusement très classique, sur une mécanique qui n'est pas triviale. J'ai donc une question préliminaire : qu'as-tu lu comme doc sur les mécanisme de lazyness hibernate ?

    Ensuite, comment sont chargées tes entités ? Par une méthode de la session (ou de l'entity manager) ou par HQL / JPQL ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/08/2014, 17h42
  2. Réponses: 3
    Dernier message: 13/07/2011, 10h42
  3. Réponses: 2
    Dernier message: 11/11/2008, 21h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo