天天看点

Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)

Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)

本文使用的Activiti版本为5.22.0。整理中。。。

解压官方demo

Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)

迁移官方demo中的文件到自己的项目中

1. 迁移前端文件

将diagram-viewer、editor-app文件夹和modeler.html文件拷贝到自己项目的根目录中

Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)
2.迁移配置文件
Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)
3.迁移Java文件

文件可从源码的

activiti-webapp-explorer2

模块中获取

Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)

内容调整

1.修改数据库配置文件
Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)

注意:

a. 此处需要将

jdbc.url

中的

&

改回为

&

,否则将导致中文乱码

b. 截图中

utf-8

的后面多了一个

"

(双引号),需要删除

2.修改activiti上下文路径
Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)
3.activiti-custom-context.xml放开注释部分
@Configuration
public class ActivitiEngineConfiguration {
    //...
}
           

官方demo使用注解的方式配置

Activiti

环境,所以

activiti-custom-context.xml

中的配置被注释掉了。这两种方式可以任选,此处使用

xml

方式配置。

由于

Activiti

官方demo中使用

Vaadin

作为前端框架进行页面展示,故需将页面涉及到的后台重新编写

Spring 配置

web.xml中关于activiti的配置

Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)
Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)

url-pattern的设置为

/service/*

是因为activiti-model中设置的路径都是相对于

service

的,在

app-cfg.js

文件中可修改其值

spring-mvc.xml中添加对静态资源的处理

<!-- 静态资源不走controller -->
    <mvc:resources mapping="/diagram-viewer/**" location="/diagram-viewer/" />
    <mvc:resources mapping="/editor-app/**" location="/editor-app/" />
           

activiti-custom-context.xml中添加bean

新建activiti-mvc.xml

<mvc:annotation-driven/>

    <!-- 指定需要扫描的包 -->
    <context:component-scan base-package="org.activiti.rest.editor,org.activiti.rest.diagram" />

    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="language" />
    </bean>

    <bean id="requestMappingHandlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
        <property name="useSuffixPatternMatch" value="false" />
        <property name="interceptors">
            <list>
                <ref bean="localeChangeInterceptor" />
            </list>
        </property>
    </bean>
           

添加依赖

Activiti

依赖

com.fasterxml.jackson.databind

包,maven配置如下:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.6</version>
</dependency>