JBPM5 配置得到两个Session和一些配置参考信息

配置得到StatefulKnowledgeSession
package com.v0610.basic.jbpm.example;

import org.drools.runtime.StatefulKnowledgeSession;

public class MyObject {
	private StatefulKnowledgeSession ksession;

	public void setSession(StatefulKnowledgeSession ksession) {
		this.ksession = ksession;
	}

	public void doSomething() {
		System.out.println("YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY");
		ksession.startProcess("com.v0610.basic.temp.helloworld");
	}
}

<?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"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:jbpm="http://drools.org/schema/drools-spring"
        xmlns:cxf="http://camel.apache.org/schema/cxf"
        xmlns:jaxrs="http://cxf.apache.org/jaxrs"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.0.xsd  
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
           http://drools.org/schema/drools-spring http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring.xsd
           http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
       	   http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
           http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
           
	<jbpm:kbase id="kbase">
	    <jbpm:resources>
	    	<jbpm:resource type="BPMN2" source="classpath:helloworld.bpmn"/>
	    </jbpm:resources>
  	</jbpm:kbase>
  	<jbpm:ksession id="ksession" type="stateful" kbase="kbase" />
  	
  	<bean id="myObject" class="com.v0610.basic.jbpm.example.MyObject">
  		<property name="session" ref="ksession" />
	</bean>
</beans>


配置得到TaskServiceSession
@PostConstruct
	public void init() {
		System.out.println("初始化Service类[JbpmSupport]------------------------------------------------------------------------.");
		// 为 ksession 设置log
		new JPAWorkingMemoryDbLogger(ksession);
		new JPAProcessInstanceDbLog(ksession.getEnvironment());

		// 创建 local human service 及其 handler
		org.jbpm.task.service.TaskService tService = new org.jbpm.task.service.TaskService(entityManagerFactory,
				SystemEventListenerFactory.getSystemEventListener());
		taskServiceSession = tService.createSession();
		// TODO 事务该如何设置?
		// taskServiceSession.setTransactionType("RESOURCE_LOCAL");
		SyncWSHumanTaskHandler humanTaskHandler = new SyncWSHumanTaskHandler(new LocalTaskService(taskServiceSession),
				ksession);
		humanTaskHandler.setLocal(true);
		humanTaskHandler.connect();
		ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);

		// set user group callback
		System.setProperty("jbpm.usergroup.callback", "org.jbpm.task.service.DefaultUserGroupCallbackImpl");
	}
public TaskService getTaskService() {
		return new LocalTaskService(taskServiceSession);
	}


一些配置参考信息
jbpm5-spring-jta-beans.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"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:jbpm="http://drools.org/schema/drools-spring"
        xmlns:cxf="http://camel.apache.org/schema/cxf"
        xmlns:jaxrs="http://cxf.apache.org/jaxrs"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.0.xsd  
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
           http://drools.org/schema/drools-spring http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring.xsd
           http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
       	   http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
           http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
           
	<bean id="jbpmEMF"
	class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="persistenceUnitName" value="org.jbpm.persistence.jta" />
	</bean>

	 <bean id="btmConfig" factory-method="getConfiguration" class="bitronix.tm.TransactionManagerServices"></bean>

  <bean id="BitronixTransactionManager" factory-method="getTransactionManager"
        class="bitronix.tm.TransactionManagerServices" depends-on="btmConfig" destroy-method="shutdown" />

  <bean id="jbpmTxManager" class="org.springframework.transaction.jta.JtaTransactionManager">
    <property name="transactionManager" ref="BitronixTransactionManager" />
    <property name="userTransaction" ref="BitronixTransactionManager" />
  </bean>

	<jbpm:kbase id="kbase2">
		<jbpm:resources>
			<jbpm:resource type="BPMN2" source="classpath:helloworld.bpmn" />
		</jbpm:resources>
	</jbpm:kbase>

	<jbpm:ksession id="ksession2" type="stateful" kbase="kbase2">
		<jbpm:configuration>
			<jbpm:jpa-persistence>
				<jbpm:transaction-manager ref="jbpmTxManager" />
				<jbpm:entity-manager-factory ref="jbpmEMF" />
			</jbpm:jpa-persistence>
		</jbpm:configuration>
	</jbpm:ksession>
	
</beans>


jbpm5-beans.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"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:kb="http://drools.org/schema/drools-spring"
        xmlns:cxf="http://camel.apache.org/schema/cxf"
        xmlns:jaxrs="http://cxf.apache.org/jaxrs"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.0.xsd  
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
           http://drools.org/schema/drools-spring http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring.xsd
           http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
       	   http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
           http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
           
	<!-- jBPM Knowledge Related Config  -->	
  	<kb:grid-node id="node1"/>
 	<kb:kbase id="kbase1" node="node1">
   		<kb:resources>
     			<kb:resource type="BPMN2" source="classpath:helloworld.bpmn"/>
	    </kb:resources>
	</kb:kbase>
  	<kb:ksession id="ksession1" type="stateless" kbase="kbase1" node="node1"/>
 	
	<!-- Camel Config --> 
	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
	
	<cxf:rsServer id="rsServer" address="/rest" serviceClass="org.drools.jax.rs.CommandExecutorImpl">
   		<cxf:providers>
       		<bean class="org.drools.jax.rs.CommandMessageBodyReader"/>
   		</cxf:providers>
	</cxf:rsServer>
	<cxf:cxfEndpoint id="soapServer" 
					address="/soap" 
					serviceName="ns:AttachmentWsService"
             		endpointName="ns:AttachmentWsServicePort" 
             		wsdlURL="wsdl/attachment.wsdl"
          	 		xmlns:ns="http://ws.basic.v0610.com" >
	   	<cxf:properties>
     		<entry key="dataFormat" value="MESSAGE"/>
     		<entry key="defaultOperationName" value="execute"/>
	   	</cxf:properties>
	</cxf:cxfEndpoint>
  		
 	<bean id="kbPolicy" class="org.drools.camel.component.DroolsPolicy" />
	<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
   		<route>
    		<from uri="cxfrs://bean://rsServer"/>
    		<policy ref="kbPolicy">
      			<unmarshal ref="xstream" />
      			<to uri="drools:node1/ksession1" />
       			<marshal ref="xstream" />
    		</policy>
   		</route>
   		<route>
    		<from uri="cxf://bean://soapServer"/>
     		<policy ref="kbPolicy">
       			<unmarshal ref="xstream" />
       			<to uri="drools:node1/ksession1" />
       			<marshal ref="xstream" />
   			</policy>
   		</route>
 	</camelContext>
</beans>

猜你喜欢

转载自panyongzheng.iteye.com/blog/1871631