jBPM customization and custom workflow deployment

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-07-2009 04:39 AM
Aaaaahhhhh…
Hello, guys and girls.
Please, help me with this issue.
I have a workflow that deploys correctly and works fine. BUT.
I need to use mail nodes and mail actions that come up with jPLD 3.2.
So.
I modified my processdefinition.xml to correspond jPDL 3.2 version as shown below:
and added mail action to one of events:
This is just a test…
Okay, now because jBPM engine will send e-mails, I need to setup SMTP rules.
I looked into XMLs in ../WEB-INF/classes/alfresco folder and found that workflow-context.xml contains the following:
Well, I created package ../WEB-INF/classes/org/alfresco/repo/workflow/jbpm and put jbpm.cfg.xml into this folder. It contains only the following:
Well, everything looks great and I'm starting Alfresco…
And have this:
How changing version from 3.1 to 3.2 may cause this:
instance not of expected entity type: org.jbpm.graph.node.Join is not a: org.jbpm.graph.def.Node ???
What I done wrong? What should I do to make this working?
Please, help ASAP.
Thank you very much!

Hello, guys and girls.
Please, help me with this issue.
I have a workflow that deploys correctly and works fine. BUT.
I need to use mail nodes and mail actions that come up with jPLD 3.2.
So.
I modified my processdefinition.xml to correspond jPDL 3.2 version as shown below:
<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="scwf:publishwhitepaper">
and added mail action to one of events:
…<mail name="mailtest" to="#{notificationRecipient}"> <subject>Hello, #{notificationRecipient}</subject> <text>Dear #{notificationRecipient}, please, do not reply to this message.</text></mail>…
This is just a test…
Okay, now because jBPM engine will send e-mails, I need to setup SMTP rules.
I looked into XMLs in ../WEB-INF/classes/alfresco folder and found that workflow-context.xml contains the following:
<!– –><!– jBPM Implementation –><!– –><bean id="jbpm_configuration" class="org.alfresco.repo.workflow.jbpm.AlfrescoJbpmConfigurationFactoryBean"> <property name="sessionFactory" ref="sessionFactory"/> <property name="configuration" value="classpath:org/alfresco/repo/workflow/jbpm/jbpm.cfg.xml"/></bean>
Well, I created package ../WEB-INF/classes/org/alfresco/repo/workflow/jbpm and put jbpm.cfg.xml into this folder. It contains only the following:
<jbpm-configuration> <string name="jbpm.mail.smtp.host" value="localhost" /> <string name="jbpm.mail.port" value="9025" /></jbpm-configuration>
Well, everything looks great and I'm starting Alfresco…
And have this:
11:22:05,933 ERROR [org.springframework.web.context.ContextLoader] Context initialization failedorg.alfresco.error.AlfrescoRuntimeException: Workflow deployment failed at org.alfresco.repo.workflow.WorkflowDeployer.init(WorkflowDeployer.java:324) at org.alfresco.repo.workflow.WorkflowDeployer$1.doWork(WorkflowDeployer.java:431) at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:437) at org.alfresco.repo.workflow.WorkflowDeployer.onBootstrap(WorkflowDeployer.java:427) at org.alfresco.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:62) at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77) at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:355) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) 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.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)Caused by: org.springframework.orm.hibernate3.HibernateSystemException: instance not of expected entity type: org.jbpm.graph.node.Join is not a: org.jbpm.graph.def.Node; nested exception is org.hibernate.HibernateException: instance not of expected entity type: org.jbpm.graph.node.Join is not a: org.jbpm.graph.def.Node at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:659) at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:377) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:338) at org.springmodules.workflow.jbpm31.JbpmTemplate.execute(JbpmTemplate.java:80) at org.alfresco.repo.workflow.jbpm.JBPMEngine.deployDefinition(JBPMEngine.java:307) at org.alfresco.repo.workflow.WorkflowServiceImpl.deployDefinition(WorkflowServiceImpl.java:174) 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:296) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144) at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:40) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:49) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) at org.alfresco.repo.audit.AuditComponentImpl.audit(AuditComponentImpl.java:275) at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:69) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy51.deployDefinition(Unknown Source) at org.alfresco.repo.workflow.WorkflowDeployer.init(WorkflowDeployer.java:294) … 36 moreCaused by: org.hibernate.HibernateException: instance not of expected entity type: org.jbpm.graph.node.Join is not a: org.jbpm.graph.def.Node at org.hibernate.persister.entity.AbstractEntityPersister.getSubclassEntityPersister(AbstractEntityPersister.java:3640) at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1347) at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:180) at org.hibernate.engine.ForeignKeys$Nullifier.isNullifiable(ForeignKeys.java:137) at org.hibernate.engine.ForeignKeys$Nullifier.nullifyTransientReferences(ForeignKeys.java:69) at org.hibernate.engine.ForeignKeys$Nullifier.nullifyTransientReferences(ForeignKeys.java:47) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:288) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499) at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:218) at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268) at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216) at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169) at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:296) at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242) at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219) at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169) at org.hibernate.engine.Cascade.cascade(Cascade.java:130) at org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:456) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:334) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499) at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:218) at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268) at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216) at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169) at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:296) at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242) at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219) at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169) at org.hibernate.engine.Cascade.cascade(Cascade.java:130) at org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:456) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:334) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187) at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172) at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519) 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.orm.hibernate3.HibernateTemplate$CloseSuppressingInvocationHandler.invoke(HibernateTemplate.java:1202) at $Proxy70.save(Unknown Source) at org.jbpm.db.GraphSession.deployProcessDefinition(GraphSession.java:77) at org.jbpm.JbpmContext.deployProcessDefinition(JbpmContext.java:173) at org.alfresco.repo.workflow.jbpm.JBPMEngine$1.doInJbpm(JBPMEngine.java:315) at org.springmodules.workflow.jbpm31.JbpmTemplate$1.doInHibernate(JbpmTemplate.java:87) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372) … 59 more
How changing version from 3.1 to 3.2 may cause this:
instance not of expected entity type: org.jbpm.graph.node.Join is not a: org.jbpm.graph.def.Node ???
What I done wrong? What should I do to make this working?
Please, help ASAP.
Thank you very much!
Labels:
- Labels:
-
Archive
4 REPLIES 4

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-06-2009 04:34 AM
Did you achieve that mail stuff in alfresco. If yes, please let me know how it would possible to send a custom email.
Manish
Manish

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-06-2009 04:39 PM
Post your process definition. From the limited error that you posted, it looks like you tried using a fork and join but didn't use the correct syntax in the join node.
On a slightly more related topic, why don't you just use the mail action instead of trying to change the jpdl version?
On a slightly more related topic, why don't you just use the mail action instead of trying to change the jpdl version?

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-13-2009 03:13 AM
Thankx for ur response.
I am not using Fork and Join nodes in my workflow. I need to know how to create a custom class for sending emails and where I need to specify my custom class in the Task node. So that I can receive emails based on my custom SMTP Configurations.
I am not using Fork and Join nodes in my workflow. I need to know how to create a custom class for sending emails and where I need to specify my custom class in the Task node. So that I can receive emails based on my custom SMTP Configurations.

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-14-2009 02:54 AM
I need to know how to create a custom class for sending emails and where I need to specify my custom class in the Task node. So that I can receive emails based on my custom SMTP Configurations.
Did you ever tried to obtain this information with usage of JBPMConfiguration?
Within a valid JBPMContext (e.g. a JBPM-Action), you should try something like this:
String mailHost = JBPMConfiguration.Configs.getString("jbpm.mail.smtp.host");
