新发布的activiti5.16.4的modeler rest框架由Restlet改为Spring MVC,个人感觉和SSH项目集成更加方便,不用再引入一系列的Restlet相关jar包。
集成过程如下:
在maven pom.xml引入activiti依赖,其它项目运行需要的包根据需要添加。在引入org.activiti.activiti-modeler时,activiti-engine等包被一起引进来。activiti modeler直接需要的jar包为activiti-modeler.jar,其中包括rest地址的映射,内容很简单就几个类。
<properties> <activiti.version>5.16.4</activiti.version> </properties>
<dependency> <groupId>org.activiti</groupId> <artifactId>activiti-modeler</artifactId> <version>${activiti.version}</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-explorer</artifactId> <version>${activiti.version}</version> <exclusions> <exclusion> <artifactId>vaadin</artifactId> <groupId>com.vaadin</groupId> </exclusion> <exclusion> <artifactId>dcharts-widget</artifactId> <groupId>org.vaadin.addons</groupId> </exclusion> <exclusion> <artifactId>activiti-simple-workflow</artifactId> <groupId>org.activiti</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-diagram-rest</artifactId> <version>${activiti.version}</version> </dependency>
activiti modeler使用的spring mvc,spring环境是必须的。在web.xml配置好spring和springmvc,参考如下,spring mvc默认拦截的所有的servlet请求。
<context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:/applicationContext.xml classpath*:/applicationContext-wf.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!--字符编码过滤器 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--引入spring mvc --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-servlet.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
拷贝activiti modeler文件到指定目录,activiti modeler所需的文件都在activiti源码文件夹:modules\activiti-webapp-explorer2目录下。拷贝过程如下:将activiti-webapp-explorer2\src\main\resources下的stencilset.json、plugins.xml拷贝到项目的src\main\resources目录下;activiti-webapp-explorer2\src\main\resources下的editor.html拷贝到项目放web页面的目录下;activiti-webapp-explorer2\src\main\webapp下的aip、editor、explorer和libs文件夹拷贝到项目js资源目录下。
拷贝完成后目录结构如下图,我将editor.html改成了editor.jsp。
剩下的就配置spring mvc、activiti modeler服务和资源的请求地址了。spring mvc配置,在spring mvc配置文件中加入要扫描的activiti modeler需要的rest服务类包,如下。
<!-- activiti modeler rest服务,位于activiti-modeler.jar下 --> <context:component-scan base-package="org.activiti.rest.editor"></context:component-scan>
spring mvc视图解析器的页面的根目录设置为/WEB-INF/views。
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp"></property> </bean>
在spring配置文件中,添加ObjectMapper的bean,activiti modeler在进行json转换时会用到。
<!-- json处理 --> <bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper"></bean>
在spring中配置activiti,提供activiti各种服务端的bean。
更改oryx.debug.js中对activiti modeler服务和资源地址的引用。虽然在oryx中声明了配置的公共地址,但是在js文件中多处仍是写死的,附件oryx.debug.js规范对服务和资源的地址引用,下载后需要按照如下修改。
修改editor中js和css文件引用的路径,如下图。
提供创建Model和跳转editor.jsp页面的rest服务,如下。
@RequestMapping("wf") @Controller public class WFController { @Autowired private TaskService taskService ; @Autowired private RuntimeService runtimeService ; @Autowired private RepositoryService repositoryService ; @Autowired private ObjectMapper objectMapper ; /** * 通过spring mvc 的rest地址打开bpmn编辑器 * @return */ @RequestMapping("editor") public ModelAndView getEditor(){ ModelAndView modelAndView = new ModelAndView("wfmodeler/editor") ; return modelAndView ; } /** * 新建一个模型,返回新建模型的id * @return * @throws UnsupportedEncodingException */ @RequestMapping("newmodeler") @ResponseBody public String createNewModeler() throws UnsupportedEncodingException{ //删除已有的流程模型 // List<Model> models = repositoryService.createModelQuery().modelNameLike("%new design model%").list() ; // for (Model oldModel : models) { // repositoryService.deleteModel(oldModel.getId()); // } //新建模型 Model model = repositoryService.newModel() ; model.setName("new design model"); model.setCategory("namespace"); model.setKey("form design key"); model.setTenantId(Constants.DEFAULT_TENANT); model.setVersion(1); ObjectNode metaNode = objectMapper.createObjectNode(); metaNode.put(ModelDataJsonConstants.MODEL_NAME, "new modeler"); metaNode.put(ModelDataJsonConstants.MODEL_REVISION, 1); metaNode.put(ModelDataJsonConstants.MODEL_DESCRIPTION, "no formal data"); model.setMetaInfo(metaNode.toString()); //保存模型 repositoryService.saveModel(model); //为模型生成一个空的wf模型 ObjectNode editorNode = new ObjectMapper().createObjectNode(); //id和resource可以没有 editorNode.put("id", "canvas"); editorNode.put("resourceId", "canvas"); ObjectNode stencilSetNode = objectMapper.createObjectNode(); //namespace的值和stencilset.json中namespace的值相同, stencilSetNode.put("namespace", "http://b3mn.org/stencilset/bpmn2.0#"); editorNode.put("stencilset", stencilSetNode); //只添加bpmn的json数据即可 repositoryService.addModelEditorSource(model.getId(), editorNode.toString().getBytes(Constants.CHARSET_UTF_8)); return model.getId() ; } }
按照如上配置,通过访问http://ip:port/projects-formdesigner/wf/editor/?id=19601就可以跳转到模型编辑页面。
相关推荐
在SpringBoot中集成Activiti,我们可以通过配置Activiti的 Starter 来快速启用服务,并通过API或注解来控制流程的启动、结束等操作。 **Modeler 可视化界面** 是Activiti的一个重要组成部分,它提供了一个图形化的...
开发者可以通过解压文件,了解其内部结构,学习如何在自己的项目中集成和使用Activiti Modeler。 总结来说,Activiti Modeler是一款强大的业务流程建模工具,基于Java开发,遵循BPMN 2.0标准,能够帮助用户直观地...
将Activiti 5.16.4集成到MyEclipse中,可以极大地提升开发效率,使开发人员能够直观地设计、部署和管理业务流程。这个插件允许用户在MyEclipse内部直接创建和编辑Activiti流程图,无需离开IDE就可以完成流程定义。 ...
在本项目中,我们关注的是一个基于Spring MVC 4.0.6、Activiti 5.16.4以及Beetl 2.2.3的整合应用。这些技术都是Java开发领域中非常重要的组件,它们各自在不同的层面上发挥着关键作用。接下来,我们将深入探讨这三个...
6. **服务任务与集成**:Activiti 中的服务任务允许与其他系统集成,如调用 Web 服务或执行自定义 Java 代码。源代码展示了如何定义和执行服务任务,以及如何处理服务调用的异常。 7. **事件监听器**:Activiti ...
当我们谈论"activiti5.16.4整合springmvc 4.0.6"时,我们关注的是如何将这两个强大的技术结合在一起,创建一个能够处理复杂业务流程的Web应用。 首先,我们需要理解Activiti的工作原理。Activiti提供了一种图形化的...
总的来说,Activiti6-modeler-demo-master.zip是一个实用的学习资源,它展示了如何在SpringBoot环境中集成和使用Activiti进行业务流程的建模和管理。通过这个示例,开发者可以学习到如何构建一个完整的流程管理平台...
在本实例中,我们将探讨如何将这两个优秀框架整合起来,利用 Activiti Modeler 在 Spring Boot 应用中实现业务流程的可视化设计和执行。 首先,我们需要理解 Spring Boot 如何配置 Activiti。在 Spring Boot 项目中...
3. **Activiti-modeler集成**:集成Activiti-modeler可能涉及将它嵌入到Web应用中,如Spring Boot或其它企业级应用框架。这通常需要配置相关依赖,设置启动参数,并提供用户界面供用户设计和管理流程。 4. **API...
SpringBoot 1.5.7+Activiti 5.22.0 +Swagger 2.7.0 工作流整合了ActivitModeler,可以直接使用官方原生画流程图 swagger地址:http://localhost:8084/swagger-ui.html#!/ avtivitiModeler地址:...
4. **集成项目**: 提供的集成项目包含所有必要的组件和资源,如jar包,使得开发者能够快速将Activiti-Modeler引入到现有的Java Web项目中。这通常涉及到配置服务器、数据库连接以及在Web应用中部署和调用模型设计器...
在提供的文件名称列表中,“oryx.debug.js”可能是Activiti Modeler中用于调试的JavaScript文件。Oryx是一个开源的BPMN 2.0建模框架,它被Activiti Modeler采用来支持流程图的绘制和编辑。这个文件可能包含了实现...
本文将深入探讨如何在SpringBoot项目中集成Activiti,并集成Activiti Modeler作为在线流程设计工具,同时通过Java反射技术实现表单的动态绑定。 一、Activiti简介 Activiti是一款开源的工作流引擎,它支持BPMN 2.0...
本文将深入探讨如何在Spring Boot项目中集成Activiti7,并利用汉化的流程设计器提升开发效率。 首先,我们来看标题中的"springboot-activiti7-modeler.rar",这表明这是一个包含Spring Boot和Activiti7集成示例的...
本篇文章将深入探讨如何将`activiti-modeler`集成到Spring项目中,以及利用`Activiti-activiti-5.22.0`源码进行深度学习和定制。 首先,我们要理解`activiti-modeler`是什么。它是一个基于BPMN(Business Process ...
jeecg-boot 前后分离 集成Activiti6 页面
在这个"Activiti-modeler集成项目.zip"中,我们将探讨如何将Activiti Modeler与Spring MVC框架集成,创建一个能够支持流程设计和执行的Web应用。 首先,集成Spring MVC和Activiti需要理解这两个组件的基本原理。...
在非 Maven 项目中集成 Activiti Modeler,意味着我们需要手动管理依赖和构建过程,而不能依赖 Maven 的自动依赖管理和构建功能。 1. **依赖库的添加**:由于是非 Maven 项目,你需要手动下载 Activiti 相关的 JAR ...
- **添加依赖**:首先在Jeecg-Boot项目中引入Activiti的相关依赖,包括activiti-spring和activiti-modeler等。 - **配置Activiti**:在application.yml或application.properties中设置数据库连接信息、Activiti...
Jeecg集成activiti.docx Jeecg集成activiti是一个关于如何将activiti集成到Jeecg平台上的指南。下面是从给定的文件中提取的相关知识点: 1. activiti项目结构:activiti项目是一个Maven项目,包含了数据库文件,...