之前搞了两个星期的工作流,刚上手的时候,卧槽,这什么玩意儿,一脸蒙蔽,后来看了一些视频,又找了一些资料,百度了好久,算是知道了一些皮毛.把后台乱七八糟的东西整好,领导说,那你把网页流程设计器也弄进去吧.
WTF!弄啥嘞.
那就搞呗.又是百度了好久,然后网上也有很多教程,结果按网上的教程去弄,把项目搞得乱七八糟的,一会这里出个毛病,一会那里出个毛病,真是TM哔了狗了.
狗说,我招你惹你了.
才把东西弄好,现在是可以在线设计,然后保存下来,先写一些,免得忘了,后面项目整理之后再发个新的.
老罗说过,所有先吹一遍再看东西都是TMD耍流氓,作为一个有情怀的程序猿,少废话,看东西.
导包这里就不说了,但是我有个不成熟的猜测,在Activiti5.16之前是需要导入org.activiti.rest下的digram和editor目录下的包.
但是在5.16+的版本直接加入org.activiti.modeler.explorer目录下的包就行了.(这里是我个人的猜测,又不对的地方欢迎各位大佬的指正,谢谢各位大佬了)
页面设计器的一些文件也要加到webapp下,这里不再赘述.
首先是web.xml
SpringMVC org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:spring-mvc.xml 1 true SpringMVC / SpringMVC /Activity_Demo/service/*
这里要注意的是/Activity_Demo/service/*
Activity_Demo是我的项目名,后面的service是固定的,这里需要说明一下,这个路径和editor-app下的app-cfg.js路径相同
如图所示:
var ACTIVITI = ACTIVITI || {}; ACTIVITI.CONFIG = { 'contextRoot' : '/Activity_Demo/service', };
这地方弄得我死去活来的,改着改着要么页面不显示模块,要么保存时报空指针(到现在我也没弄清楚里面具体的什么情况,请原谅我才疏学浅).
网上说modeler.html及相关的样式也需要修改,这个一找一大堆,不说了.
然后依赖:
org.activiti activiti-engine ${activiti.version} org.activiti activiti-spring ${activiti.version} org.activiti activiti-rest ${activiti.version}
<groupId>org.activitigroupId> activiti-modeler ${activiti.version} <groupId>org.activitigroupId> activiti-diagram-rest ${activiti.version} <groupId>org.activitigroupId> activiti-explorer 5.16 vaadin com.vaadin dcharts-widget org.vaadin.addons activiti-simple-workflow org.activiti
这地方注意一下版本号:
4.1.5.RELEASE 5.22.0
主版本号是5.22,explorer的版本号是5.16的,坦率的说,我不知道有没有什影响,但是目前来说还没有出现什么问题,等到后面有问题再继续改.
spring-mvc配置:
<context:component-scan base-package="org.activiti.rest.editor,org.activiti.rest.diagram"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> context:component-scan>class="org.activiti.rest.service.api.RestResponseFactory" id="restResponseFactory"> class="org.activiti.rest.common.application.DefaultContentTypeResolver" id="contentTypeResolver">
注释部分是我之前自己Copy过来的类,但是加了新的扫描之后,启动时Spring会报错,然后在网上看了一些demo感觉Copy出来的那些类貌似并没有用到,所以我猜测在不同版本中整合可能会有差异,后期我自己尝试去验证一下.
<bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper" />
这个比较重要,在rest.editor.model文件夹下的两个类都有注入这个
@Autowired private ObjectMapper objectMapper;
service有四个类直接复制粘贴过来就行了
具体路径忘接了,大家可以直接用名称搜一下就找到了,也可以去看一下咖啡兔大大的demo,那里面也能找到
https://github.com/henryyan/kft-activiti-demo
git直接拷过来找一下吧,demo里有一些东西还是可以参考的,具体的环境,配置之类的东西还是自己搭起来慢慢琢磨比较好.
OK,先写那么多,等会去跑一下,看看还有没有其他的问题,到时候回来再补充补充.
自己慢慢琢磨感觉很慢,可能是自己很笨吧,也请各位大大指点一二,谢谢.