JBoss Community

Re: Process flow stops after human task completion in jBPM5.1

created by MichaƂ Warecki in jBPM - View the full discussion

Yes, I register this handler.

Here is my configuration:

 

 

<bean id="systemEventListener"
        class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="staticMethod">
            <value>org.drools.SystemEventListenerFactory.getSystemEventListener</value>
        </property>
    </bean>

    <bean id="taskService" class="org.jbpm.task.service.TaskService">
        <constructor-arg ref="taskEntityManagerFactory" />
        <constructor-arg ref="systemEventListener" />
    </bean>

    <bean id="taskSession" class="org.jbpm.task.service.TaskServiceSession"
        factory-bean="taskService" factory-method="createSession" scope="singleton" >
    </bean>

    <bean id="taskExecutor"
        class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <property name="corePoolSize" value="5" />
        <property name="maxPoolSize" value="10" />
        <property name="queueCapacity" value="25" />
    </bean>

    <bean id="minaTaskServer" class="org.jbpm.task.service.mina.MinaTaskServer">
        <constructor-arg ref="taskService" />
    </bean>

    <bean id="taskServerThread" class="pl.edu.wat.mw.task.server.TaskServer"
        p:taskExecutor-ref="taskExecutor" p:minaTaskServer-ref="minaTaskServer"
        init-method="startServer" destroy-method="stopServer" lazy-init="false" />

    <bean id="knowledgeSessionFactory" class="pl.edu.wat.mw.process.session.KnowledgeSessionFactory" 
        p:entityManagerFactory-ref="processEntityManagerFactory"
        p:transactionManager-ref="transactionManager" />
    
    <bean id="knowledgeSession" class="org.drools.runtime.StatefulKnowledgeSession" 
        factory-bean="knowledgeSessionFactory" 
        factory-method="createSession"/>

    <bean id="taskClientFactory" class="pl.edu.wat.mw.task.service.TaskClientFactory" />
        
    <bean id="taskClient" class="org.jbpm.task.service.TaskClient" 
        factory-bean="taskClientFactory"
        factory-method="factory"
        scope="singleton"
        lazy-init="true" 
    />

 

 

Where in KnowledgeSessionFactory I have:

 

 

public void afterPropertiesSet() {
        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
        kbuilder.add(ResourceFactory.newClassPathResource("process/pl.edu.wat.mw.RetailSales.bpmn2"), ResourceType.BPMN2);
        kbase = kbuilder.newKnowledgeBase();
        
        env = KnowledgeBaseFactory.newEnvironment();
        env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, entityManagerFactory);
        env.set(EnvironmentName.TRANSACTION_MANAGER, transactionManager);
    }
    
    public StatefulKnowledgeSession createSession() {
        // create a new knowledge session that uses JPA to store the runtime state
        StatefulKnowledgeSession ksession =
            JPAKnowledgeService.newStatefulKnowledgeSession(kbase, null, env);
        
        JPAWorkingMemoryDbLogger logger = new JPAWorkingMemoryDbLogger(ksession);
        
        ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new WSHumanTaskHandler());
        ksession.getWorkItemManager().registerWorkItemHandler("WSInvoke", serviceInvokerWorkItem);
        ksession.getWorkItemManager().registerWorkItemHandler("CreateOrderProfile", createOrderProfileWorkItem);
        
        logger.dispose();
        return ksession;
    }

 

In TaskClientFactory:

 

public TaskClient factory() {
        TaskClient client = new TaskClient(new MinaTaskClientConnector("default client", new MinaTaskClientHandler(SystemEventListenerFactory.getSystemEventListener())));
        return client;
    }

 

 

I have a feeling that I broke something in Spring configuration :-)

Reply to this message by going to Community

Start a new discussion in jBPM at Community