Activiti 工作流引擎 ~ 整合 Activiti Modeler(一)
本文使用的Activiti版本为5.22.0。整理中。。。
解压官方demo
迁移官方demo中的文件到自己的项目中
1. 迁移前端文件
将diagram-viewer、editor-app文件夹和modeler.html文件拷贝到自己项目的根目录中
2.迁移配置文件
3.迁移Java文件
文件可从源码的activiti-webapp-explorer2
模块中获取
内容调整
1.修改数据库配置文件
注意:
a. 此处需要将jdbc.url
中的&
改回为&
,否则将导致中文乱码
b. 截图中utf-8
的后面多了一个"
(双引号),需要删除
2.修改activiti上下文路径
3.activiti-custom-context.xml放开注释部分
@Configuration
public class ActivitiEngineConfiguration {
//...
}
官方demo使用注解的方式配置Activiti
环境,所以activiti-custom-context.xml
中的配置被注释掉了。这两种方式可以任选,此处使用xml
方式配置。
由于Activiti
官方demo中使用Vaadin
作为前端框架进行页面展示,故需将页面涉及到的后台重新编写
Spring 配置
web.xml中关于activiti的配置
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
<bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper" />
新建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>