Jbpm5使用的是jpa 作为持久化工具
HumanTaskServiceServer为主类。
LoadGroups.mvel和LoadUsers.mvel是Group以及User的初始化数据。
修改persistence.xml这个文件,根据自身的mysql 情况去配置。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns:persistence="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd ">
<persistence-unit name="mysqljpa" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<mapping-file>META-INF/Taskorm.xml</mapping-file>
<class>org.jbpm.task.Attachment</class>
<class>org.jbpm.task.BooleanExpression</class>
<class>org.jbpm.task.Comment</class>
<class>org.jbpm.task.Content</class>
<class>org.jbpm.task.Deadline</class>
<class>org.jbpm.task.Delegation</class>
<class>org.jbpm.task.EmailNotification</class>
<class>org.jbpm.task.EmailNotificationHeader</class>
<class>org.jbpm.task.Escalation</class>
<class>org.jbpm.task.Group</class>
<class>org.jbpm.task.I18NText</class>
<class>org.jbpm.task.Notification</class>
<class>org.jbpm.task.OnAllSubTasksEndParentEndStrategy</class>
<class>org.jbpm.task.OnParentAbortAllSubTasksEndStrategy</class>
<class>org.jbpm.task.PeopleAssignments</class>
<class>org.jbpm.task.Reassignment</class>
<class>org.jbpm.task.Status</class>
<class>org.jbpm.task.SubTasksStrategy</class>
<class>org.jbpm.task.Task</class>
<class>org.jbpm.task.TaskData</class>
<class>org.jbpm.task.User</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/zxy" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="admin" />
<property name="hibernate.connection.autocommit" value="false" />
<property name="hibernate.max_fetch_depth" value="3" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>
</persistence>
/**
* jbpm server
*
* @author zxy
*
*/
public class HumanTaskServiceServer {
public static void main(String[] args) {
// 持久化
EntityManagerFactory emf = Persistence.createEntityManagerFactory("mysqljpa");
TaskService taskService = new TaskService(emf, SystemEventListenerFactory.getSystemEventListener());
TaskServiceSession taskSession = taskService.createSession();
// 用户最终根据hw系统里的用户,这里只是作为测试之用
// 添加测试用户
Map vars = new HashMap();
InputStream usersin = HumanTaskServiceServer.class.getResourceAsStream( "LoadUsers.mvel" );
if(usersin != null) {
Reader reader = new InputStreamReader( usersin );
@SuppressWarnings("unchecked")
Map<String, User> users = ( Map<String, User> ) TaskService.eval( reader, vars );
for ( User user : users.values() ) {
taskSession.addUser( user );
}
}
// 用户组
InputStream groupsin = HumanTaskServiceServer.class.getResourceAsStream( "LoadGroups.mvel" );
if(groupsin != null) {
Reader reader = new InputStreamReader( groupsin );
@SuppressWarnings("unchecked")
Map<String, Group> groups = ( Map<String, Group> ) TaskService.eval( reader, vars );
for ( Group group : groups.values() ) {
taskSession.addGroup( group );
}
}
// 测试数据是否导入成功
InputStream usergroupsin = HumanTaskServiceServer.class.getResourceAsStream( "jbpm.usergroup.callback.properties" );
if(usergroupsin != null) {
Properties callbackproperties = new Properties();
try {
callbackproperties.load(usergroupsin);
UserGroupCallbackManager.getInstance().setCallbackFromProperties(callbackproperties);
System.out.println("Task service registered usergroup callback ...");
} catch (Exception e) {
System.out.println("Task service unable to register usergroup callback ...");
}
}
// 启动Server,也可用Mina作为数据传输服务器
TaskServer server = new HornetQTaskServer(taskService, 5445);
Thread thread = new Thread(server);
thread.start();
taskSession.dispose();
System.out.println("Task service started correctly!");
System.out.println("Task service running ...");
}
}
这里是server的代码。有注释,大家看一下,如果想要整合到jboss/tomcat下面,可以想成web工程,变成servlet随便tomcat/jboss加载便可,不在这里赘述,另外jbpm也支持mina进行数据传输。请自行更改。需要jar以及源码的,请留下邮箱(楼主很少上csdn好像没有办法上传附件,尼玛)