2 Replies Latest reply on Jun 4, 2013 6:32 PM by Jose Miguel Loor

    Problem with forms in the soa-p 5.3.1 integration with jbpm 5

    Jose Miguel Loor Apprentice

      Hi

       

      I am testing the integration of jbpm 5 with jboss soa platform. So far, i downloaded soa-p-5.3.1.GA.zip and soa-p-5.3.1.GA-jbpm5.zip. Also, according with the instructions in the readme file of the soa-p jbpm 5 file, i downloaded the brms-p-5.3.1.GA-deployable.zip and deployed its content in the soa-p platform server

       

      I am running the soa platform against an oracle database; so i modified all files to use that database.

       

      Also, i created a esb project and deployed to the server. This esb project has a .bpmn file that represents my process definition; i can interact with this process via the esb project, that means, i can start a new instance of the process using the esb command available for that operation

       

      But i cannot access the form that i defined for a human task inside the process. It is giving me this problem:

       

      freemarker.core.InvalidReferenceException: Expression revRequestId is undefined on line 15, column 34 in LoanRevission.

      freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)

      freemarker.core.Expression.getStringValue(Expression.java:118)

      freemarker.core.Expression.getStringValue(Expression.java:93)

      freemarker.core.DollarVariable.accept(DollarVariable.java:76)

      freemarker.core.Environment.visit(Environment.java:209)

      freemarker.core.MixedContent.accept(MixedContent.java:92)

      freemarker.core.Environment.visit(Environment.java:209)

      freemarker.core.Environment.process(Environment.java:189)

      freemarker.template.Template.process(Template.java:237)

      org.jbpm.integration.console.forms.AbstractFormDispatcher.processTemplate(AbstractFormDispatcher.java:128)

      org.jbpm.integration.console.forms.TaskFormDispatcher.provideForm(TaskFormDispatcher.java:109)

      org.jbpm.integration.console.forms.FormDispatcherComposite.provideForm(FormDispatcherComposite.java:50)

      org.jboss.bpm.console.server.FormProcessingFacade.provideForm(FormProcessingFacade.java:205)

      org.jboss.bpm.console.server.FormProcessingFacade.renderTaskUI(FormProcessingFacade.java:127)

      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

      java.lang.reflect.Method.invoke(Method.java:601)

      org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)

      org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:255)

      org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:220)

      org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:209)

      org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:519)

      org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:496)

      org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119)

      org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)

      org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)

      org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)

      javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

      org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)

      org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

       

      But the variable in question (revRequestId) IS DEFINED in the bpmn file, and assigned to the task.

       

      Another thing that i find weird is that, as i mentioned before, i can start instances of the process via the esb; but those instances does not show in the business-central console, or when i access the REST api of the business-central-server; i know that these instances exists, because i can see the tasks that are create for a user, and these tasks has an instance id associated with them; but the instances does not appear in the console or via the REST api, why ??

       

      The other problem i am facing is that, i created a form to start the process, to test if it could be ran without the esb, but when i used this form to start an instance i get this error:

       

      org.drools.WorkItemHandlerNotFoundException: Could not find work item handler for JBossESB

      org.drools.persistence.jpa.processinstance.JPAWorkItemManager.throwWorkItemNotFoundException(JPAWorkItemManager.java:62)

      org.drools.persistence.jpa.processinstance.JPAWorkItemManager.internalExecuteWorkItem(JPAWorkItemManager.java:57)

      org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:107)

      org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:122)

      org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:210)

      org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:169)

      org.jbpm.workflow.instance.node.ActionNodeInstance.triggerCompleted(ActionNodeInstance.java:55)

      org.jbpm.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:51)

      org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:122)

      org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:210)

      org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:169)

      org.jbpm.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:49)

      org.jbpm.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:41)

      org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:122)

      org.jbpm.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:35)

      org.jbpm.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:188)

      org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:305)

      org.jbpm.process.instance.ProcessRuntimeImpl.startProcessInstance(ProcessRuntimeImpl.java:169)

      org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:139)

      org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1082)

      org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:318)

      org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:119)

      org.drools.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:38)

      org.drools.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36)

      org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:360)

      org.drools.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:223)

      org.jbpm.integration.console.CommandDelegate.startProcess(CommandDelegate.java:120)

      org.jbpm.integration.console.ProcessManagement.newInstance(ProcessManagement.java:88)

      org.jboss.bpm.console.server.FormProcessingFacade.startProcessWithUI(FormProcessingFacade.java:197)

      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

      java.lang.reflect.Method.invoke(Method.java:601)

      org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)

      org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:255)

      org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:220)

      org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:209)

      org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:519)

      org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:496)

      org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119)

      org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)

      org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)

      org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)

      javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

      org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)

      org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

       

      But, again, i can start a process instance via the deployed esb project; what is wrong with this

       

      thanks a lot