文档章节

activiti model5.22 与 spring4.3.10 整合

乘着风的翅膀
 乘着风的翅膀
发布于 2017/08/18 18:14
字数 1267
阅读 111
收藏 0

遇到的异常解决

“SAX2 driver class org.apache.crimson.parser.XMLReaderImpl not found” when using Batik in a webapp on Tomcat  

解决

<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-transcoder</artifactId>
			<version>1.6-1</version>
			<exclusions>
            <exclusion>
                <artifactId>fop</artifactId>
                <groupId>fop</groupId>
            </exclusion>
        </exclusions>
		</dependency>  

activiti5.22 版本与SpringMVC 4.3.10 整合

1、下载activiti5.22
https://pan.baidu.com/s/1jIacfaA
2、解压activiti5.22
找到wars在的activiti-explorer.war,将其放在tomcat的webapps下,启动tomcat将其解压,找activiti-explorer\WEB-INF\lib,拷贝所有jar包到bamboo-activiti的lib下
本人采用的是maven 所以在pom文件中加入相关jar包

<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-explorer</artifactId>
			<version>5.19.0.2</version>
		</dependency>
		<!-- <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> 
			<version>5.21.0</version> </dependency> -->

		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-modeler</artifactId>
			<version>5.22.0</version>
		</dependency>
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-rest</artifactId>
			<version>6.0.0</version>
		</dependency>

		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-diagram-rest</artifactId>
			<version>5.22.0</version>
		</dependency>

		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-bpmn-model</artifactId>
			<version>5.22.0</version>
		</dependency>


		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-transcoder</artifactId>
			<version>1.6-1</version>
			<exclusions>
				<exclusion>
					<artifactId>fop</artifactId>
					<groupId>fop</groupId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-dom</artifactId>
			<version>1.7</version>
		</dependency>

		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-json-converter</artifactId>
			<version>5.19.0</version>
			<exclusions>
				<exclusion>
					<artifactId>commons-collections</artifactId>
					<groupId>commons-collections</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-bridge</artifactId>
			<version>1.6-1</version>
		</dependency>

		<dependency>
			<groupId>org.codeartisans.thirdparties.swing</groupId>
			<artifactId>batik-all</artifactId>
			<version>1.8pre-r1084380</version>
		</dependency>


		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-css</artifactId>
			<version>1.6-1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-codec</artifactId>
			<version>1.9</version>
		</dependency>

		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-ext</artifactId>
			<version>1.6-1</version>
		</dependency>
		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-gvt</artifactId>
			<version>1.6-1</version>
		</dependency>
		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-script</artifactId>
			<version>1.6-1</version>
		</dependency>
		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-parser</artifactId>
			<version>1.6-1</version>
		</dependency>
		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-svg-dom</artifactId>
			<version>1.6-1</version>
		</dependency>
		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-svggen</artifactId>
			<version>1.6-1</version>
		</dependency>
		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-util</artifactId>
			<version>1.6-1</version>
		</dependency>
		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-xml</artifactId>
			<version>1.6-1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-js</artifactId>
			<version>1.7</version>
		</dependency>

		<dependency>
			<groupId>xml-apis</groupId>
			<artifactId>xml-apis-ext</artifactId>
			<version>1.3.04</version>
		</dependency>
		<dependency>
			<groupId>xml-apis</groupId>
			<artifactId>xml-apis</artifactId>
			<version>1.3.04</version>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>xmlgraphics-commons</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>batik</groupId>
			<artifactId>batik-awt-util</artifactId>
			<version>1.6-1</version>
		</dependency>
		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.1</version>
		</dependency>
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
		</dependency>

3、 将wars下面的activiti-explorer.war 解压缩
将webapp下的diagram-viewer、editor-app、modeler.html,将其加到项目的webapp下面
4、activiti 的配置文件如下

<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context.xsd
	http://www.springframework.org/schema/mvc    
	http://www.springframework.org/schema/mvc/spring-mvc.xsd ">

	<!-- <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> 
		连接数据的配置 <property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property> 
		<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti"></property> 
		<property name="jdbcUsername" value="root"></property> <property name="jdbcPassword" 
		value="123123"></property> 没有表创建表 <property name="databaseSchemaUpdate" value="true"></property> 
		</bean> -->

	<!-- spring负责创建流程引擎的配置文件 -->
	<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
		<!-- 数据源 -->
		<property name="dataSource" ref="dataSource" />
		<!-- 配置事务管理器,统一事务 -->
		<property name="transactionManager" ref="transactionManager" />
		<!-- 设置建表策略,如果没有表,自动创建表 -->
		<property name="databaseSchemaUpdate" value="true" />

		<!-- 作业执行器 -->
		<property name="jobExecutorActivate" value="false" />
		<property name="enableDatabaseEventLogging" value="false" />
		<!-- 历史级别 -->
		<!-- <property name="history" value="activity" /> -->
		<property name="processDefinitionCacheLimit" value="10" />
		<!-- 生成流程图的字体 -->
		<property name="activityFontName" value="宋体" />
		<property name="labelFontName" value="宋体" />
		<!-- 全局监听器 -->
		<!-- <property name="typedEventListeners"> <map> <entry key="ENTITY_CREATED"> 
			<list> <bean class="com.ssm.activiti.listener.MyJobEventListener" /> </list> 
			</entry> <entry key="TASK_CREATED"> <list> <bean class="com.ssm.activiti.listener.MyJobEventListener" 
			/> </list> </entry> <entry key="TASK_COMPLETED"> <list> <bean class="com.ssm.activiti.listener.MyJobEventListener" 
			/> </list> </entry> <entry key="PROCESS_COMPLETED"> <list> <bean class="com.ssm.activiti.listener.MyJobEventListener" 
			/> </list> </entry> </map> </property> -->
	</bean>
	<!-- 创建流程引擎对象 -->
	<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
		<property name="processEngineConfiguration" ref="processEngineConfiguration" />
	</bean>

	<!-- 相当于下面的代码 RepositoryServicie repositoryService = processEngine.getRepositoryService(); 
		RuntimeServicie repositoryService = processEngine.getRuntimeServicie(); TaskServicie 
		taskServicie = processEngine.getTaskServicie(); HistoryServicie historyServicie 
		= processEngine.getHistoryServicie(); -->
	<!-- 由流程引擎对象,提供的方法,创建项目中使用的Activiti工作流的Service -->
	<bean id="repositoryService" factory-bean="processEngine"
		factory-method="getRepositoryService" />
	<bean id="runtimeService" factory-bean="processEngine"
		factory-method="getRuntimeService" />
	<bean id="taskService" factory-bean="processEngine"
		factory-method="getTaskService" />
	<bean id="historyService" factory-bean="processEngine"
		factory-method="getHistoryService" />
	<bean id="formService" factory-bean="processEngine"
		factory-method="getFormService" />
	<bean id="identityService" factory-bean="processEngine"
		factory-method="getIdentityService" />
	<bean id="managementService" factory-bean="processEngine"
		factory-method="getManagementService" />

	<bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper" />

	<context:component-scan base-package="com.ssm.activiti.model" use-default-filters="false">
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
	</context:component-scan>

</beans>

上面对于数据源的配置,我已经在mybatis配置的时候已经配置,这里面直接用了datasource 在Spring 配置文件 spring.xml 引入上面的配置
<import resource="classpath:activiti.cfg.xml" />

4、Activiti 5.22.0的libs中找到activiti-modeler-5.22.0-sources.jar 解压
将三个java文件拷贝到自己的文件夹下 com.ssm.activiti.model ModelEditorJsonRestResource.java
ModelSaveRestResource.java
StencilsetRestResource.java

5、activiti 配置文件添加配置

<context:component-scan base-package="com.ssm.activiti.model" use-default-filters="false">
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
	</context:component-scan>

6、在editor-app中找到app-cfg.js文件,将'contextRoot' : '/activiti-explorer/service',修改为本项目的路径

ACTIVITI.CONFIG = {
	'contextRoot' : '/api',
};

api是我的项目名称

7、 创建Controller model 如下

@Controller
@RequestMapping(EnvConstant.WORKFLOW_PROJECT_NAME + EnvConstant.WORKFLOW_VERSION + "model/")
public class ActivitiModelController {
    @Autowired
    private RepositoryService repositoryService;

    @RequestMapping("create")
    public void create(HttpServletRequest request, HttpServletResponse response) {
        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, "hello1111");
            modelObjectNode.put(ModelDataJsonConstants.MODEL_REVISION, 1);
            String description = "hello1111";
            modelObjectNode.put(ModelDataJsonConstants.MODEL_DESCRIPTION, description);
            modelData.setMetaInfo(modelObjectNode.toString());
            modelData.setName("hello1111");
            modelData.setKey("12313123");

            //保存模型
            repositoryService.saveModel(modelData);
            repositoryService.addModelEditorSource(modelData.getId(),
                    editorNode.toString().getBytes("utf-8"));
            response.sendRedirect(
                    request.getContextPath() + "/modeler.html?modelId=" + modelData.getId());
        } catch (Exception e) {
            System.out.println("创建模型失败:");
        }
    }
}

8、将stencilset.json 拷贝到 /src/main/resources 下面
如果是从activiti-export war里面拷贝过来的是model是英文的,需要进行汉化。
参考汉化版本
https://pan.baidu.com/s/1skKoTU9 8、前端页面index.jsp 里面加上链接

<div style="margin-top: 20px;">
		<a href="activiti/v0_1_0/model/create/">Spring-MVC 跳转</a><br /> <a href="activiti/v0_1_0/model/create/">activiti-modele-index</a><br />
	</div>

点击链接跳转到model界面

参考链接:http://blog.csdn.net/u010411264/article/details/71480354

© 著作权归作者所有

上一篇: ELK 安装
乘着风的翅膀
粉丝 1
博文 43
码字总数 18534
作品 0
松江
程序员
私信 提问
kft-activiti-demo 1.13.0 发布,Activiti 快速入门 Demo

时隔一年再次更新,主要是针对Activiti 5.17+版本做了支持,自动初始化Demo数据等 Activiti Modeler从5.17开始结构和整合到项目的方式有些变化,另外官方Activiti Explorer整合的方式也有Spr...

咖啡兔
2015/11/25
1K
4
activiti工作流的web流程设计器整合视频教程 SSM和独立部署

本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流程设计器和其它工作流项目分开...

ITjavaxue
2017/04/15
0
0
java activiti工作流的web流程设计器整合视频教程 SSM和独立部署

本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流程设计器和其它工作流项目分开...

niuyangyang87
2017/04/14
0
0
java activiti5 在线web流程设计器整合视频教程 SSM和独立部署

本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流程设计器和其它工作流项目分开...

m17095936074
2017/06/11
0
0
activiti web流程设计器 工作流的 整合视频教程 SSM和独立部署

本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流程设计器和其它工作流项目分开...

dykx852
2017/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部