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:
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:
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 :cry: