cancel
Showing results for 
Search instead for 
Did you mean: 

processTemplate : erreur d'IO lors de la généra

ericc
Champ in-the-making
Champ in-the-making
Bonjour,
j'ai un problème lors de l'utilisation de template freemarker.

J'ai stocké dans mon espace un fichier freemarker sur lequel je lance un workflow. Je me suis largement inspiré du code dispo sur le [url=http://wiki.alfresco.com/fr/index.php/Envoyer_des_mails_au_format_HTML_%C3%A0_partir_d'un_template_F... fr[/url].

Quand je lance ma transformation :
[code]templateService.processTemplate("freemarker", templateRef.toString(), model);[/code]

J'ai cette erreur :
org.alfresco.service.cmr.repository.TemplateException: Une erreur d'IO est survenue lors de la génération du modèle 'workspace://SpacesStore/0ece8b97-06e4-11dd-8799-bb189334b1eb'. Veuillez contacter votre administrateur système.

Et là je comprend pas trop. Le templateRef est bon (vérifié via le node explorer). Quelqu'un aurais déjà eut ce genre de problème?

Merci.
4 REPLIES 4

rguinot
Confirmed Champ
Confirmed Champ
echo "org.alfresco.service.cmr.repository.TemplateException" | krystalball

Peux tu nous en dire plus sur ton environnement ? Version d'Alfresco, OS , Serveur d'app, DB,…
Peux tu également poster le template qui pose problème ainsi que la trace complète de l'erreur ( surtout les "caused by").

ericc
Champ in-the-making
Champ in-the-making
Alors je suis sur Alfresco 2.9b
Windows XP
Tomcat
et HSQL vu que je suis en dev.

Et voilà la trace :

10:14:03,906 ERROR [org.jbpm.instantiation.FieldInstantiator] couldn't parse set field 'script' to value '<script xmlns="urn:jbpm.org:jpdl-3.1" accept-propagated-events="true"></script>'
java.lang.NullPointerException
   at org.jbpm.instantiation.FieldInstantiator.setPropertyValue(FieldInstantiator.java:70)
   at org.jbpm.instantiation.FieldInstantiator.instantiate(FieldInstantiator.java:61)
   at org.jbpm.instantiation.Delegation.instantiate(Delegation.java:163)
   at org.jbpm.instantiation.Delegation.getInstance(Delegation.java:125)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:147)
   at org.jbpm.instantiation.Delegation$$EnhancerByCGLIB$$d26d3f94.getInstance(<generated>)
   at org.jbpm.graph.def.Action.execute(Action.java:121)
   at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:247)
   at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:215)
   at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:185)
   at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:169)
   at org.jbpm.graph.def.Transition.take(Transition.java:138)
   at org.jbpm.graph.def.Node.leave(Node.java:393)
   at org.jbpm.graph.node.TaskNode.leave(TaskNode.java:209)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:147)
   at org.jbpm.graph.node.TaskNode$$EnhancerByCGLIB$$f792e1a0.leave(<generated>)
   at org.jbpm.graph.exe.Token.signal(Token.java:194)
   at org.jbpm.graph.exe.Token.signal(Token.java:165)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:147)
   at org.jbpm.graph.exe.Token$$EnhancerByCGLIB$$69db91ea.signal(<generated>)
   at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:478)
   at org.alfresco.repo.workflow.jbpm.WorkflowTaskInstance.end(WorkflowTaskInstance.java:133)
   at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:417)
   at org.alfresco.repo.workflow.jbpm.JBPMEngine$26.doInJbpm(JBPMEngine.java:1681)
   at org.springmodules.workflow.jbpm31.JbpmTemplate$1.doInHibernate(JbpmTemplate.java:87)
   at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:367)
   at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:333)
   at org.springmodules.workflow.jbpm31.JbpmTemplate.execute(JbpmTemplate.java:80)
   at org.alfresco.repo.workflow.jbpm.JBPMEngine.endTask(JBPMEngine.java:1649)
   at org.alfresco.repo.workflow.WorkflowServiceImpl.endTask(WorkflowServiceImpl.java:488)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:281)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:187)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:154)
   at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:40)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:49)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.alfresco.repo.audit.AuditComponentImpl.audit(AuditComponentImpl.java:241)
   at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:69)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210)
   at $Proxy44.endTask(Unknown Source)
   at org.alfresco.web.bean.workflow.ManageTaskDialog.transition(ManageTaskDialog.java:393)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
   at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
   at javax.faces.component.UICommand.broadcast(UICommand.java:109)
   at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
   at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
   at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
   at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
   at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
   at java.lang.Thread.run(Thread.java:595)

Et mon freemarker (qui est là un fichier html, pour tester j'ai mi le minimum pour l'instant) :

<html>
    <head>
        <title></title>
    </head>
    <body>
        Essais d'une newsletter
    </body>
</html>

michaelh
Champ on-the-rise
Champ on-the-rise
Bonjour,

A mon avis du coté des logs il manque la portion qui commence par "caused by" (en gros on a la conséquence, mais pas de détails sur la cause).

ericc
Champ in-the-making
Champ in-the-making
Hummm non je n'avais que ça.
Par contre j'ai trouvé l'erreur, je pensais que la variable bpm_package (du workflow) contenait le nodeRef du fichier sur lequel il a été lancé, mais c'est en fait le noderef du workflow en lui même.

Du coup question subsidiaire, comment récupérer les attributs d'une tâche d'un workflow? (le fichier sur lequel il a été lancé mais aussi les données que l'on peut entrer au cours du workflow). J'utilise une classe héritant de JBPMSpringActionHandler.

Merci.