`

我的Activiti例子

 
阅读更多
Spring 与Activiti的入门整合 http://www.iteye.com/topic/1134046
Activiti 5.12用户指南之Activiti的Spring集成 http://www.iteye.com/topic/1130389
Activiti 5.15 用户手册 http://www.mossle.com/docs/activiti/
默认Explorer应用使用的内存数据库已经包含了示例流程,用户和群组信息。
下面是示例中可以使用的用户:
账号 密码 角色
kermit kermit admin
gonzo gonzo manager
fozzie fozzie user
--------------------------------------------------



package com;

import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.editor.constants.ModelDataJsonConstants;
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
import org.activiti.engine.*;
import org.activiti.engine.form.StartFormData;
import org.activiti.engine.form.TaskFormData;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.Model;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.ObjectNode;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * User: pandy
 * Date: 13-9-16
 * Time: 上午9:36
 * To change this template use File | Settings | File Templates.
 */
@Controller
@RequestMapping("/a")
public class TestController {
    @Resource(name = "taskService")
    private TaskService taskService;

    @Resource(name = "runtimeService")
    private RuntimeService runtimeService;

    @Resource(name = "repositoryService")
    private RepositoryService repositoryService;

    @Resource(name = "formService")
    private FormService formService;

    @Resource(name = "historyService")
    private HistoryService historyService;


    /**
     * 获得一些查询列表
     *
     * @return
     */
    @RequestMapping("/list")
    public ModelAndView list() {
        ModelAndView view = new ModelAndView("list");
        List<Task> tasks = taskService.createTaskQuery().list();
        view.addObject("tasks", tasks);
        view.addObject("message", "This is a message.");

        List<Model> modelList = repositoryService.createModelQuery().list();
        view.addObject("modelList", modelList);

        List<Deployment> deploymentList = repositoryService.createDeploymentQuery().list();
        view.addObject("deploymentList", deploymentList);

        List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery().list();
        view.addObject("processDefinitionList", processDefinitionList);

        return view;
    }

    /**
     * 创建一个modeler
     *
     * @return
     */
    @RequestMapping("/create")
    public ModelAndView create() {

        Date d = new Date();
        String str = "Pandy_" + d.getTime() + "";

        try {
            ObjectMapper objectMapper = new ObjectMapper();
            ObjectNode editorNode = objectMapper.createObjectNode();
            editorNode.put("id", "canvas");
            editorNode.put("resourceId", "canvas");
            ObjectNode stencilSetNode = objectMapper.createObjectNode();
            stencilSetNode.put("namespace", "http://b3mn.org/stencilset/bpmn2.0#");
            editorNode.put("stencilset", stencilSetNode);
            Model modelData = repositoryService.newModel();

            ObjectNode modelObjectNode = objectMapper.createObjectNode();
            modelObjectNode.put(ModelDataJsonConstants.MODEL_NAME, str);
            modelObjectNode.put(ModelDataJsonConstants.MODEL_REVISION, 1);
            modelObjectNode.put(ModelDataJsonConstants.MODEL_DESCRIPTION, str);
            modelData.setMetaInfo(modelObjectNode.toString());
            modelData.setName(str);
            modelData.setKey(str);

            repositoryService.saveModel(modelData);
            repositoryService.addModelEditorSource(modelData.getId(), editorNode.toString().getBytes("utf-8"));



        } catch (Exception e) {
            e.printStackTrace();
        }


        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }

    /**
     * 删除一个已经部署的实例
     *
     * @param id
     * @return
     */
    @RequestMapping("/deleteModeler")
    public ModelAndView deleteModeler(@RequestParam("id") String id) {
        System.out.println("id=" + id);
        try {
            repositoryService.deleteModel(id);
        } catch (Exception e) {
            e.printStackTrace();
        }

        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }


    /**
     * 部署一个Modeler
     *
     * @param id
     * @return
     */
    @RequestMapping("/deployModel")
    public ModelAndView deployModel(@RequestParam("id") String id) {
        System.out.println("id=" + id);
        Deployment deployment = null;
        try {
            Model modelData = repositoryService.getModel(id);
            ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(
                    repositoryService.getModelEditorSource(modelData.getId())
            );

            byte[] bpmnBytes = null;

            BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode);
            bpmnBytes = new BpmnXMLConverter().convertToXML(model);

            String processName = modelData.getName() + ".bpmn20.xml";

            deployment = repositoryService.createDeployment()
                    .name(modelData.getName())
                    .addString(processName, new String(bpmnBytes))
                    .deploy();

        } catch (Exception e) {
            e.printStackTrace();
        }


        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }



    /**
     * 删除一个已经部署的实例
     *
     * @param id
     * @return
     */
    @RequestMapping("/deleteDeploy")
    public ModelAndView deleteDeploy(@RequestParam("id") String id) {
        System.out.println("id=" + id);
        try {
            repositoryService.deleteDeployment(id,false);
        } catch (Exception e) {
            e.printStackTrace();
        }

        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }

    /**
     * 启动已经部署工作流
     *
     * @return
     */
    @RequestMapping("/start")
    public ModelAndView start(@RequestParam("id") String defId) {
        Map<String, Object> variables = new HashMap<String, Object>();
       /* variables.put("employeeName", "Kermit");
        variables.put("numberOfDays", new Integer(4));
        variables.put("vacationMotivation", "I'm really tired!");*/
        //启动
        System.out.println("启动");

        //ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess", variables);
        ProcessInstance processInstance = runtimeService.startProcessInstanceById(defId, variables);
        //StartFormData formData = formService.getStartFormData(processInstance.getProcessDefinitionId());

        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }

    /**
     * 完成一个节点
     *
     * @param id
     * @return
     */
    @RequestMapping("/complete")
    public ModelAndView complete(@RequestParam("id") String id) {
        //List<Task> list = taskService.createTaskQuery().taskDefinitionKey(id).list();
        List<Task> list = taskService.createTaskQuery().taskId(id).list();
        if (list != null && !list.isEmpty()) {
            for (Task task : list) {


                TaskFormData formData = formService.getTaskFormData(task.getId());
                taskService.complete(task.getId());
            }
        }

        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }

    /**
     * 导出流程
     *
     * @param fileName
     * @param bpmnBytes
     */
    public void exportFile(String fileName, byte[] bpmnBytes) {
        fileName = "/mnt/D/work_documents/workspace/ActivitiTemp/src/main/resources/diagrams/" + fileName;
        System.out.println(fileName);
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(fileName, true);
            fos.write(bpmnBytes);
            fos.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                fos.close();
            } catch (IOException iex) {
            }
        }


    }



    /**
     * 启动已经部署工作流
     *
     * @return
     */
    @RequestMapping("/start1")
    public ModelAndView start1() {
        Map<String, Object> variables = new HashMap<String, Object>();
       /* variables.put("employeeName", "Kermit");
        variables.put("numberOfDays", new Integer(4));
        variables.put("vacationMotivation", "I'm really tired!");*/
        //启动
        System.out.println("启动");
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess", variables);
        StartFormData formData = formService.getStartFormData(processInstance.getProcessDefinitionId());

        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }

    /**
     * 启动已经部署工作流
     *
     * @return
     */
    @RequestMapping("/start2")
    public ModelAndView start2() {
        Map<String, Object> variables = new HashMap<String, Object>();
       /* variables.put("employeeName", "Kermit");
        variables.put("numberOfDays", new Integer(4));
        variables.put("vacationMotivation", "I'm really tired!");*/
        //启动
        System.out.println("启动");
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess", variables);

        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }

    /**
     * 启动已经部署Form工作流
     *
     * @return
     */
    @RequestMapping("/start3")
    public ModelAndView start3() {
        Map<String, Object> variables = new HashMap<String, Object>();
       /* variables.put("employeeName", "Kermit");
        variables.put("numberOfDays", new Integer(4));
        variables.put("vacationMotivation", "I'm really tired!");*/
        //启动
        System.out.println("启动");
        Map<String, String> properties = new HashMap<String, String>();
        ProcessInstance processInstance = formService.submitStartFormData("xxxxx", properties);

        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }

    /**
     * 这只是一个测试的方法
     *
     * @return
     */
    @RequestMapping("/mytest")
    public ModelAndView mytest() {
        System.out.println("开始执行工作流的方法");

        //发布
        System.out.println("发布");
        repositoryService.createDeployment()
                .addClasspathResource("bpmn/MyProcess.bpmn")
                .deploy();

        Map<String, Object> variables = new HashMap<String, Object>();
       /* variables.put("employeeName", "Kermit");
        variables.put("numberOfDays", new Integer(4));
        variables.put("vacationMotivation", "I'm really tired!");*/


        //启动
        System.out.println("启动");
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess", variables);

        //遍历任务
        System.out.println("遍历所有");
        //List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup("management").list();
        //List<Task> tasks = taskService.createTaskQuery().taskCandidateUser("test").list();
        List<Task> tasks = taskService.createTaskQuery().taskAssignee("test").list();
        for (Task task : tasks) {
            System.out.println("#Task available: " + task.getId() + ":" + task.getName());


            Map<String, Object> taskVariables = new HashMap<String, Object>();
            //taskService.complete(task.getId(), taskVariables);
            System.out.println("complete#Task: " + task.getId() + ":" + task.getName());
        }

        //查看任务
        System.out.println("遍历所有");
        tasks = taskService.createTaskQuery().list();
        for (Task task : tasks) {
            System.out.println("@Task available: " + task.getId() + ":" + task.getName());
        }

        String url = "redirect:/a/list.do";
        return new ModelAndView(url);
    }
}





<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%
    String path=request.getContextPath();
%>
<html>
<head>
    <title></title>
    <style>
        table,tr,th,td{
            border: 1px solid #000000;
        }
    </style>
</head>
<body>
<br>模型列表: 创建模型: <a href="<%=path%>/a/create.do">Create</a>
<table border="0">
    <tr>
        <th>ID</th>
        <th>Key</th>
        <th>Name</th>
        <th>编辑</th>
        <th>部署</th>
        <th>删除</th>
    </tr>
    <c:forEach items="${modelList}" var="t">
        <tr>
            <td>${t.id}</td>
            <td>${t.key}</td>
            <td>${t.name}</td>
            <td><a target="_blank" href="<%=path%>/modeler/service/editor?id=${t.id}">编辑</a></td>
            <td><a target="_self" href="<%=path%>/a/deployModel.do?id=${t.id}">部署</a></td>
            <td><a target="_self" href="<%=path%>/a/deleteModeler.do?id=${t.id}">删除</a></td>
        </tr>
    </c:forEach>
</table>

<br>已经部署列表: 启动任务: <a href="<%=path%>/a/start1.do">Start1</a>  <a href="<%=path%>/a/start2.do">Start2</a>
<table border="0">
    <tr>
        <th>定义ID</th>
        <th>部署ID</th>
        <th>Key</th>
        <th>Name</th>
        <th>启动</th>
        <th>删除</th>
    </tr>
    <c:forEach items="${processDefinitionList}" var="d">
        <tr>
            <td>${d.id}</td>
            <td>${d.deploymentId}</td>
            <td>${d.key}</td>
            <td>${d.name}</td>
            <td><a href="<%=path%>/a/start.do?id=${d.id}">启动</a></td>
            <td><a href="<%=path%>/a/deleteDeploy.do?id=${d.deploymentId}">删除</a></td>
        </tr>
    </c:forEach>
</table>


<br>任务列表:
<table border="0">
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>完成</th>
    </tr>
    <c:forEach items="${tasks}" var="t">
        <tr>
            <td>${t.id}</td>
            <td>${t.name}</td>
            <td><a href="<%=path%>/a/complete.do?id=${t.id}">批准</a></td>
        </tr>
    </c:forEach>
</table>

</body>
</html>




<?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:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
		http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.0.xsd">
    <context:component-scan base-package="com">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://192.168.0.196:3306/activiti_demo"/>
        <property name="username" value="root"/>
        <property name="password" value=""/>
    </bean>
    <!--<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://192.168.0.196:3306/activiti_demo" />
        <property name="username" value="root" />
        <property name="password" value="" />
    </bean>-->

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
        <property name="dataSource" ref="dataSource"/>
        <property name="deploymentResources" value="classpath*:/bpmn/*.bpmn"/>
        <property name="transactionManager" ref="transactionManager"/>
        <property name="databaseSchemaUpdate" value="true"/>
        <property name="jobExecutorActivate" value="false"/>
        <property name="processDefinitionCacheLimit" value="10"/>
        <property name="activityFontName" value="${diagram.activityFontName}"/>
        <property name="labelFontName" value="${diagram.labelFontName}"/>
    </bean>
    <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
        <property name="processEngineConfiguration" ref="processEngineConfiguration"/>
    </bean>
    <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService"/>
    <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService"/>
    <bean id="formService" factory-bean="processEngine" factory-method="getFormService"/>
    <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService"/>
    <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService"/>
    <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService"/>
    <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService"/>
    <!-- Activiti end -->
</beans>




<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.pandy</groupId>
    <artifactId>activiti_demo</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>activiti_demo</name>
    <url>http://maven.apache.org</url>

    <properties>
        <spring.version>3.1.2.RELEASE</spring.version>
        <activiti.version>5.13</activiti.version>
        <spring-data-jpa.version>1.3.4.RELEASE</spring-data-jpa.version>
        <commons-dbcp.version>1.4</commons-dbcp.version>
        <commons-io.version>2.4</commons-io.version>
    </properties>


    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <!--<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.2.3</version>
        </dependency>-->

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.2.4</version>
        </dependency>


        <!-- Activiti -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-engine</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>${spring-data-jpa.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit-dep</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- WEB begin -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons-io.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.2.2</version>
        </dependency>


        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

        <!-- JDBC -->
        <!-- mysql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.26</version>
        </dependency>
        <!-- dbcp connection pool -->
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>${commons-dbcp.version}</version>
        </dependency>
        <!-- bonecp -->
        <dependency>
            <groupId>com.jolbox</groupId>
            <artifactId>bonecp</artifactId>
            <version>0.8.0-rc1</version>
        </dependency>


        <!-- Modeler -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-modeler</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-explorer</artifactId>
            <version>${activiti.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.vaadin.addons</groupId>
                    <artifactId>dcharts-widget</artifactId>
                </exclusion>
                <exclusion>
                    <artifactId>activiti-simple-workflow</artifactId>
                    <groupId>org.activiti</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 查看流程详细定义 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-diagram-rest</artifactId>
            <version>${activiti.version}</version>
        </dependency>


    </dependencies>


    <repositories>
        <repository>
            <id>Alfresco Maven Repository</id>
            <url>https://maven.alfresco.com/nexus/content/groups/public/</url>
        </repository>
        <repository>
            <id>buzzmedia</id>
            <url>http://maven.thebuzzmedia.com</url> <!-- ImageScalr -->
        </repository>
        <repository>
            <id>activiti</id>
            <name>Activiti</name>
            <url>https://maven.alfresco.com/nexus/content/repositories/activiti/</url>
        </repository>
        <repository>
            <id>Alfresco thirdparty</id>
            <url>https://maven.alfresco.com/nexus/content/repositories/thirdparty/</url>
        </repository>
        <repository>
            <id>activiti-third-party</id>
            <name>Activiti third party</name>
            <url>https://maven.alfresco.com/nexus/content/repositories/activiti-thirdparty/</url>
        </repository>
        <repository>
            <id>maven-restlet</id>
            <name>Public online Restlet repository</name>
            <url>http://maven.restlet.org</url>
        </repository>
    </repositories>


    <build>
        <finalName>activiti_demo</finalName>
        <plugins>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>8.1.3.v20120416</version>
                <configuration>
                    <webApp>
                        <contextPath>/activiti_demo</contextPath>
                    </webApp>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
分享到:
评论
1 楼 Jelly_oy 2014-05-07  
大侠,可以请教下你吗?

addModelEditorSource(String modelId, byte[] bytes)

这个方法的第二个参数,是什么东东啊?
是流程定义XML文件对应的字节数组吗?

相关推荐

    Activiti6.0教程例子下载

    下载后解压(我所使用的是5.12版本的,Activiti更新速度飞快,几乎每两个月就会有一个更新的小版本),看到如下目录: 1) database:里面存放的是Activiti使用到的数据库信息的sql文件,它支持的数据库类型如下图,...

    myeclipse-activiti简单例子

    本篇文章将通过一个简单的例子来介绍如何在MyEclipse环境中搭建Activiti开发环境,以及如何使用Activiti进行基本的流程定义和执行。 #### 二、准备工作 1. **环境准备**: - 操作系统:Windows 7 64位 - IDE:...

    activiti web 例子 源码

    本资源提供的"activiti web 例子 源码"是一个基于Web的Activiti实例,适用于开发者学习和理解如何在Web环境中集成与操作Activiti工作流引擎。 在Activiti 5版本中,它引入了许多关键特性,如: 1. **流程定义...

    activiti网上的例子

    Activiti 是一个开源的工作流和业务流程...总的来说,通过网上找到的Activiti例子,开发者可以学习如何设计、部署和运行流程,以及如何将Activiti无缝集成到自己的应用程序中,从而提升业务流程的自动化水平和效率。

    spring mybatis 整合activiti 初学例子

    spring mybatis 整合activiti 初学例子,虽然没有jar包但有jar包的截图,找到一样或高版本的jar包可以运行,activiti最基本的例子,发起流程、待办任务、签收任务、处理任务(审批同意或不同意)、调整申请等功能;...

    jfinal 和 activiti整合例子

    《JFinal与Activiti整合实践详解》 在Java开发领域,JFinal和Activiti是两个备受瞩目的框架。JFinal是一款轻量级的Java Web框架,以其高效、简洁的特性深受开发者喜爱。而Activiti则是一款流程定义和执行的开源工作...

    Activiti 5.22.0加Demo代码

    Activiti整合到Spring的Demo代码,Maven构建项目,里面包含了所有的JSON汉化包,精简pom文件,以及创建流程的测试代码,我使用的IDE是IntelliJ IDEA,使用Eclipse测试时请先将项目转换为maven项目下载jar包

    Activiti多实例任务实现会签

    【标题】"Activiti多实例任务实现会签"是指在Activiti工作流引擎中,如何配置和使用多实例任务来实现会签功能。在企业级应用中,会签常常用于决策过程,要求多个参与者共同审批,只有当所有参与者都完成审批后,流程...

    工作流例子-activiti5

    在“工作流例子-activiti5”中,我们将探讨如何使用 Activiti 5 来实现这些功能。Activiti 5 是 Activiti 的一个旧版本,但依然包含许多关键特性,如流程定义、流程实例管理、任务处理和历史查询。 首先,让我们...

    activiti 工作流 入门 可运行 示例 简单 上手 项目 BPM java

    本项目旨在让Activiti初学者可以快速入门,使用工作流里面的请假流程作为Activiti企业实战的Hello World。 简单通过这个实例说明如何结合流程与业务,表单、业务、流程之前如何衔接…… 发起这个项目也是目前没有...

    Activiti-6.0 官网资源

    Activiti 是一个强大的开源业务流程管理系统(BPM)和工作流引擎,专为开发人员和系统管理员设计。它提供了一套全面的工具和技术,帮助企业实现流程自动化,提高工作效率,并简化IT与业务之间的协作。 在 Activiti ...

    activiti5.6一个小例子

    本文将通过一个具体的小例子,深度解析Activiti 5.6版本的核心功能和使用方法。 一、什么是Activiti? Activiti是一款基于Java的业务流程管理系统(BPM),它基于Apache 2.0协议,提供了强大的流程定义、执行、...

    spring boot整合activiti modeler 实例

    **Spring Boot 整合 Activiti Modeler 深度解析** Spring Boot 是一款基于 Spring Framework 的轻量级框架,它简化了新 Spring 应用的初始搭建以及开发过程。而 Activiti 是一个开源的工作流引擎,它实现了业务流程...

    activiti流程管理的几个小例子

    这个压缩包中的“activiti流程管理的几个小例子”旨在帮助用户更深入地理解和应用Activiti。通过这些实例,我们可以探索以下几个关键知识点: 1. **流程定义(Process Definition)**:在Activiti中,流程定义是...

    activiti工作流例子

    该资源是用activit6.0写的一个工作流的例子,放在tomcat下的wepapps就可以运行。

    activiti 项目的dome

    描述中提到"activiti项目例子"进一步确认了这是一个用于教学或学习目的的项目。它提示我们需要修改数据库配置,这可能涉及到连接到特定数据库的详细信息,如URL、用户名和密码。同时,提到了...

    出差流程后台系统-基于activiti

    Activiti 是一个开源的工作流和业务自动化引擎,它在企业级应用中被广泛用于实现业务流程管理(BPM)。这个“出差流程后台系统-基于activiti”项目显然是利用Activiti来构建的一个具体业务场景——员工出差申请的...

    activiti工作流案例

    Activiti工作流是一个开源的业务流程管理(BPM)和工作流引擎,它为企业提供了一种灵活、可扩展的方式来管理其业务流程。这个压缩包文件包含的“activiti工作流案例”是帮助初学者快速理解和实践Activiti工作流的一...

    activiti 5.8资源包

    3. **示例项目**:演示如何使用Activiti进行流程设计和实施,这些例子通常涵盖了各种常见场景。 4. **库文件**:包含Activiti运行所需的JAR包,便于在项目中引入和配置。 5. **数据库脚本**:用于创建和初始化...

    activiti5.9 请假流程例子 eclipse项目

    【标题】"activiti5.9 请假流程例子 eclipse项目" 在企业级应用开发中,工作流管理系统(Workflow Management System)扮演着至关重要的角色,它能够自动化和管理业务流程,提高工作效率。Activiti 是一个开源的...

Global site tag (gtag.js) - Google Analytics