Spring集成Activiti就不说了,到处都是这样的文章,这里只针对新的部分进行一个说明
1、下载Activiti 5.17的源代码:https://github.com/Activiti/Activiti
2、将modules\activiti-webapp-explorer2\src\main\webapp\diagram-viewer整个目录拷贝到工程的webapp/workflow下。
3、将modules\activiti-webapp-explorer2\src\main\resources下的stencilset.json拷贝到工程的resource目录下。
4、将modules\activiti-webapp-explorer2\src\main\java\org整目录拷贝到工程的src\main\java下,删除其中的DemoDataConfiguration.java、WebConfigurer.java。web.xml中也不要出现该类,该类和org.springframework.web.servlet.DispatcherServlet有冲突,会造成很多问题。该类的用处只是给rest接口全部增加service路径,没有太大用处。
5、打开diagram-viewer目录下的index.html,删除红色部分(和第四步的WebConfigurer是关联的,如果愿意改来使用WebConfigurer,红色部分就不用删除了):
ActivitiRest.options= {
processInstanceHighLightsUrl: baseUrl + "/service/process-instance/{processInstanceId}/highlights?callback=?",
processDefinitionUrl: baseUrl + "/service/process-definition/{processDefinitionId}/diagram-layout?callback=?",
processDefinitionByKeyUrl: baseUrl + "/service/process-definition/{processDefinitionKey}/diagram-layout?callback=?"
};
6、打开activiti-explorer war下WEB-INF的web.xml,拷贝如下到工程的webapp/WEB-INF的web.xml中:
<filter>
<filter-name>JSONPFilter</filter-name>
<filter-class>org.activiti.explorer.servlet.JsonpCallbackFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>JSONPFilter</filter-name>
<url-pattern>/service/*</url-pattern>
</filter-mapping>
并将filter-mapping部分修改为
<filter-mapping>
<filter-name>JSONPFilter</filter-name>
<url-pattern>/process-instance/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>JSONPFilter</filter-name>
<url-pattern>/process-definition/*</url-pattern>
</filter-mapping>
6、如果确定使用WebConfigurer,则还要将以下部分拷贝到web.xml中:
<!--To load the Spring context -->
<listener>
<listener-class>org.activiti.explorer.servlet.WebConfigurer</listener-class>
</listener>