[jBPM Users] - Re: Problem moving from 4.1 to 4.2 using Spring configuratio
by saraswati.santanu
Did you manage to get rid of this problem?
Today I tried to migrate from 4.1 to 4.2, and faced the same problem. After a deeper dive into the code I realized that it is expecting the CommandService to be there in the WireContext against the key CommandService.NAME_TX_REQUIRED_COMMAND_SERVICE. Now in jbpm.cfg.xml whatever name you give becomes the key in WireContext. So I need to give the name of the command service as the string the code expects.
| <command-service name="txRequiredCommandService">
| <retry-interceptor />
| <environment-interceptor />
| <spring-transaction-interceptor/>
| </command-service>
|
This configuration solves the problem.
It will be great if somebody can shed some more light on it and explain why is it this way? I mean why we do not have a fallback mechanism in the code where entry against that key "txRequiredCommandService" is not found then it will search with the CommandService class name. Normally all the services which is not given a name in jpdl.cfg.xml are stored against their class name.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4265048#4265048
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4265048
16 years, 5 months
[jBPM Users] - Web application (Seam) powered by jBPM 4
by juanignaciosl
I want to make a web application which relies heavily on workflows. What should I do?
a) Deploying jBPM console and interacting with it through JNDI
b) Embedding jBPM in my webapp?
c) Other?
I'd like to be able to administer processes with the console. Is it viable with b)?
I'd like to use custom entities as process variables. If I choose b), data will be replicated in both databases?
I'd like to be able to generate user forms dinamically depending on process variables. What's the best way to do it? Right now I'm thinking on querying variable names and defining somewhere else (XML?, database?) some visibility and editability criteria ("nobody can edit x at task 3, at task 4 x is mandatory..."). With this infraestructure and some conventions I think I will be able to generate dinamic forms with little effort. Is there any work in progress on this?
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4265032#4265032
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4265032
16 years, 5 months
[jBPM Users] - Process Invoking Another Process
by dhanushgopinath
Hi,
I am using jbpm bpel 1.1.1. GA
I want to invoke a process P2 from another process P1. For this I am using asynchronous invoke on P1 and then immediately puts a receive to get back the call back from process P2 once it is finished. The process P2 sends the call back by using an asynchronous invoke activity at the end.
My problem is that when P1 tries to invoke the process P2, it gives a "no port implemented" exception. Is it necessary to give the complete URL of Process P2 in the P1's partner link information?
In that case when P1 calls back P2's receive activity shouldn't I put the complete URL of P1 in P2's partner link.
How will we know the URL's before deployment?
Please let me know if any of you faced this issue before.
Thanks in advance.
Best Regards
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4264969#4264969
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4264969
16 years, 5 months
[jBPM Users] - jbpm4 with spring PlatformTransactionManager problem
by quanmie
Hi,all:
jbpm4 with spring Errors:
org.jbpm.api.JbpmException: No platformTransaction manager defined.
org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:33)
org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:54)
org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
org.hibernate.dialect.OracleDialect
true
none
classpath:jbpm.execution.hbm.xml
classpath:jbpm.repository.hbm.xml
classpath:jbpm.task.hbm.xml
classpath:jbpm.history.hbm.xml
classpath:jbpm.identity.hbm.xml
<constructor-arg value="jbpm.cfg.xml" />
<bean id="processEngine" factory-bean="jbpmConfiguration" factory-method="buildProcessEngine" />
<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
<bean id="executionService" factory-bean="processEngine" factory-method="getExecutionService" />
<bean id="taskService" factory-bean="processEngine" factory-method="getTaskService"/>
<bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService"/>
<bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService"/>
jbpm.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<jbpm-configuration>
<process-engine-context>
<repository-service />
<repository-cache />
<execution-service />
<history-service />
<management-service />
<identity-service />
<task-service />
<command-service>
<retry-interceptor />
<environment-interceptor />
<spring-transaction-interceptor current="true" />
</command-service>
<!-- Added spring as read-context -->
<script-manager default-expression-language="juel"
default-script-language="juel"
read-contexts="execution, environment, process-engine, spring"
write-context="">
<script-language name="juel" factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" />
</script-manager>
<id-generator />
<address-resolver />
<business-calendar>
</business-calendar>
<mail-template name='task-notification'>
${task.name}
<![CDATA[Hi ${task.assignee},Task "${task.name}" has been assigned to you.${task.description}Sent by JBoss jBPM]]>
</mail-template>
<mail-template name='task-reminder'>
${task.name}
<![CDATA[Hey ${task.assignee},Do not forget about task "${task.name}".${task.description}Sent by JBoss jBPM]]>
</mail-template>
</process-engine-context>
<transaction-context>
<repository-session />
<db-session />
<message-session />
<timer-session />
<history-session />
<mail-session>
<mail-server>
<session-properties resource="jbpm.mail.properties" />
</mail-server>
</mail-session>
<!-- Need to set explicitly that we don't want jbpm to create sessions -->
<hibernate-session current="true" />
</transaction-context>
</jbpm-configuration>
my jbpm.cfg.xml have errors?
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4264955#4264955
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4264955
16 years, 5 months
[jBPM Users] - jbpm 4.2 - Subprocess issue
by makarandk502
Hi,
In following process definition, running process through jbpm-console
Start-Task1-Task2- Subprocess(This has simple task with Java Task which just prints messages)- end
After running Task2, I am getting following error
| HTTP Status 500 -
|
| type Exception report
|
| message
|
| description The server encountered an internal error () that prevented it from fulfilling this request.
|
| exception
|
| org.jboss.resteasy.spi.UnhandledException: org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#30046]
| org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319)
| org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:230)
| org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:206)
| org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:360)
| org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
| org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
| org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
| javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
| org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
| root cause
|
| org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#30046]
| org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
| org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
| org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2569)
| org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2725)
| org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)
| org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
| org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
| org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
| org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
| org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
| org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
| org.hibernate.impl.SessionImpl.forceFlush(SessionImpl.java:1048)
| org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:188)
| org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
| org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
| org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)
| org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)
| org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)
| org.jbpm.pvm.internal.hibernate.DbSessionImpl.save(DbSessionImpl.java:87)
| org.jbpm.jpdl.internal.activity.SubProcessActivity.execute(SubProcessActivity.java:91)
| org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
| org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:655)
| org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:615)
| org.jbpm.pvm.internal.model.ExecutionImpl.signal(ExecutionImpl.java:416)
| org.jbpm.pvm.internal.model.ExecutionImpl.signal(ExecutionImpl.java:402)
| sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
| org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)
| org.jbpm.pvm.internal.model.ExecutionImpl_$$_javassist_5.signal(ExecutionImpl_$$_javassist_5.java)
| org.jbpm.pvm.internal.task.TaskImpl.complete(TaskImpl.java:194)
| org.jbpm.pvm.internal.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:60)
| org.jbpm.pvm.internal.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:32)
| org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
| org.jbpm.pvm.internal.tx.jta.JtaTransactionInterceptor.executeInNewTx(JtaTransactionInterceptor.java:87)
| org.jbpm.pvm.internal.tx.jta.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:66)
| org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
| org.jbpm.pvm.internal.tx.jta.JtaRetryInterceptor.executeWithRetry(JtaRetryInterceptor.java:52)
| org.jbpm.pvm.internal.tx.jta.JtaRetryInterceptor.execute(JtaRetryInterceptor.java:45)
| org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
| org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
| org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
| org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:96)
| org.jbpm.integration.console.TaskManagementImpl.completeTask(TaskManagementImpl.java:102)
| org.jboss.bpm.console.server.FormProcessingFacade.closeTaskWithUI(FormProcessingFacade.java:161)
| sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
| org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
| org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
| org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
| org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
| org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
| org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
| org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
| org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
| org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
| javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
| org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
| root cause
|
| java.sql.SQLException: Integrity constraint violation FK_EXEC_SUBPI table: JBPM4_EXECUTION in statement [delete from JBPM4_EXECUTION where DBID_=? and DBVERSION_=?]
| org.hsqldb.jdbc.Util.throwError(Unknown Source)
| org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown Source)
| org.jboss.resource.adapter.jdbc.CachedPreparedStatement.executeUpdate(CachedPreparedStatement.java:94)
| org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:365)
| org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2551)
| org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2725)
| org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)
| org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
| org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
| org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
| org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
| org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
| org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
| org.hibernate.impl.SessionImpl.forceFlush(SessionImpl.java:1048)
| org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:188)
| org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
| org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
| org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)
| org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)
| org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)
| org.jbpm.pvm.internal.hibernate.DbSessionImpl.save(DbSessionImpl.java:87)
| org.jbpm.jpdl.internal.activity.SubProcessActivity.execute(SubProcessActivity.java:91)
| org.jbpm.pvm.internal.model.op.ExecuteActivity.perform(ExecuteActivity.java:60)
| org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:655)
| org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:615)
| org.jbpm.pvm.internal.model.ExecutionImpl.signal(ExecutionImpl.java:416)
| org.jbpm.pvm.internal.model.ExecutionImpl.signal(ExecutionImpl.java:402)
| sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
| org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)
| org.jbpm.pvm.internal.model.ExecutionImpl_$$_javassist_5.signal(ExecutionImpl_$$_javassist_5.java)
| org.jbpm.pvm.internal.task.TaskImpl.complete(TaskImpl.java:194)
| org.jbpm.pvm.internal.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:60)
| org.jbpm.pvm.internal.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:32)
| org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
| org.jbpm.pvm.internal.tx.jta.JtaTransactionInterceptor.executeInNewTx(JtaTransactionInterceptor.java:87)
| org.jbpm.pvm.internal.tx.jta.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:66)
| org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:55)
| org.jbpm.pvm.internal.tx.jta.JtaRetryInterceptor.executeWithRetry(JtaRetryInterceptor.java:52)
| org.jbpm.pvm.internal.tx.jta.JtaRetryInterceptor.execute(JtaRetryInterceptor.java:45)
| org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
| org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
| org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
| org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:96)
| org.jbpm.integration.console.TaskManagementImpl.completeTask(TaskManagementImpl.java:102)
| org.jboss.bpm.console.server.FormProcessingFacade.closeTaskWithUI(FormProcessingFacade.java:161)
| sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| java.lang.reflect.Method.invoke(Method.java:597)
| org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
| org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
| org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
| org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
| org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
| org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
| org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
| org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
| org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
| javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
| org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
|
| note The full stack trace of the root cause is available in the JBoss Web/2.1.1.GA logs.
| JBoss Web/2.1.1.GA
|
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4264943#4264943
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4264943
16 years, 5 months