`
lp895876294
  • 浏览: 284916 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

集成activiti 5.16.4中modeler

 
阅读更多

       新发布的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就可以跳转到模型编辑页面。

 

  • 大小: 316.4 KB
  • 大小: 182.7 KB
  • 大小: 345.9 KB
  • 大小: 1 MB
分享到:
评论
2 楼 枫叶一染 2016-04-01  
楼主你好,你的项目我整 了好久都没弄好,能完整单独发给我一份吗?
1 楼 crazycl 2015-09-25  
麻烦问下楼主有集成好的吗?可以发给我一份吗?从csdn下了一个应该是您发的,但是没有class文件。我的邮箱:crazycl@163.com

相关推荐

    springboot2.x 集成activiti5.22+ modeler可视化界面

    在SpringBoot中集成Activiti,我们可以通过配置Activiti的 Starter 来快速启用服务,并通过API或注解来控制流程的启动、结束等操作。 **Modeler 可视化界面** 是Activiti的一个重要组成部分,它提供了一个图形化的...

    activiti5.16.4 ,myeclipse插件

    将Activiti 5.16.4集成到MyEclipse中,可以极大地提升开发效率,使开发人员能够直观地设计、部署和管理业务流程。这个插件允许用户在MyEclipse内部直接创建和编辑Activiti流程图,无需离开IDE就可以完成流程定义。 ...

    activiti modeler.zip_activiti_activiti-modeler_java_zip

    开发者可以通过解压文件,了解其内部结构,学习如何在自己的项目中集成和使用Activiti Modeler。 总结来说,Activiti Modeler是一款强大的业务流程建模工具,基于Java开发,遵循BPMN 2.0标准,能够帮助用户直观地...

    springmvc4.0.6+activiti 5.16.4 + beetl 2.2.3

    在本项目中,我们关注的是一个基于Spring MVC 4.0.6、Activiti 5.16.4以及Beetl 2.2.3的整合应用。这些技术都是Java开发领域中非常重要的组件,它们各自在不同的层面上发挥着关键作用。接下来,我们将深入探讨这三个...

    Activiti 5.16.4源代码

    6. **服务任务与集成**:Activiti 中的服务任务允许与其他系统集成,如调用 Web 服务或执行自定义 Java 代码。源代码展示了如何定义和执行服务任务,以及如何处理服务调用的异常。 7. **事件监听器**:Activiti ...

    activiti5.16.4整合springmvc 4.0.6

    当我们谈论"activiti5.16.4整合springmvc 4.0.6"时,我们关注的是如何将这两个强大的技术结合在一起,创建一个能够处理复杂业务流程的Web应用。 首先,我们需要理解Activiti的工作原理。Activiti提供了一种图形化的...

    Activiti6-modeler-demo-master.zip

    总的来说,Activiti6-modeler-demo-master.zip是一个实用的学习资源,它展示了如何在SpringBoot环境中集成和使用Activiti进行业务流程的建模和管理。通过这个示例,开发者可以学习到如何构建一个完整的流程管理平台...

    spring boot整合activiti modeler 实例

    在本实例中,我们将探讨如何将这两个优秀框架整合起来,利用 Activiti Modeler 在 Spring Boot 应用中实现业务流程的可视化设计和执行。 首先,我们需要理解 Spring Boot 如何配置 Activiti。在 Spring Boot 项目中...

    Activiti-modeler集成项目

    3. **Activiti-modeler集成**:集成Activiti-modeler可能涉及将它嵌入到Web应用中,如Spring Boot或其它企业级应用框架。这通常需要配置相关依赖,设置启动参数,并提供用户界面供用户设计和管理流程。 4. **API...

    SpringBoot集成activitiModeler

    SpringBoot 1.5.7+Activiti 5.22.0 +Swagger 2.7.0 工作流整合了ActivitModeler,可以直接使用官方原生画流程图 swagger地址:http://localhost:8084/swagger-ui.html#!/ avtivitiModeler地址:...

    activiti-modeler工作流网页版设计器

    4. **集成项目**: 提供的集成项目包含所有必要的组件和资源,如jar包,使得开发者能够快速将Activiti-Modeler引入到现有的Java Web项目中。这通常涉及到配置服务器、数据库连接以及在Web应用中部署和调用模型设计器...

    activiti5.9的编辑组件activiti-modeler

    在提供的文件名称列表中,“oryx.debug.js”可能是Activiti Modeler中用于调试的JavaScript文件。Oryx是一个开源的BPMN 2.0建模框架,它被Activiti Modeler采用来支持流程图的绘制和编辑。这个文件可能包含了实现...

    springBoot-activiti-modeler-master.zip

    本文将深入探讨如何在SpringBoot项目中集成Activiti,并集成Activiti Modeler作为在线流程设计工具,同时通过Java反射技术实现表单的动态绑定。 一、Activiti简介 Activiti是一款开源的工作流引擎,它支持BPMN 2.0...

    springboot-activiti7-modeler.rar

    本文将深入探讨如何在Spring Boot项目中集成Activiti7,并利用汉化的流程设计器提升开发效率。 首先,我们来看标题中的"springboot-activiti7-modeler.rar",这表明这是一个包含Spring Boot和Activiti7集成示例的...

    activiti-modeler集成到spring项目

    本篇文章将深入探讨如何将`activiti-modeler`集成到Spring项目中,以及利用`Activiti-activiti-5.22.0`源码进行深度学习和定制。 首先,我们要理解`activiti-modeler`是什么。它是一个基于BPMN(Business Process ...

    jeecg-boot 集成Activiti6 页面

    jeecg-boot 前后分离 集成Activiti6 页面

    Activiti-modeler集成项目.zip

    在这个"Activiti-modeler集成项目.zip"中,我们将探讨如何将Activiti Modeler与Spring MVC框架集成,创建一个能够支持流程设计和执行的Web应用。 首先,集成Spring MVC和Activiti需要理解这两个组件的基本原理。...

    activiti5.21整合modeler 非maven

    在非 Maven 项目中集成 Activiti Modeler,意味着我们需要手动管理依赖和构建过程,而不能依赖 Maven 的自动依赖管理和构建功能。 1. **依赖库的添加**:由于是非 Maven 项目,你需要手动下载 Activiti 相关的 JAR ...

    jeecg-boot集成activiti demo.rar

    - **添加依赖**:首先在Jeecg-Boot项目中引入Activiti的相关依赖,包括activiti-spring和activiti-modeler等。 - **配置Activiti**:在application.yml或application.properties中设置数据库连接信息、Activiti...

    Jeecg集成activiti.docx

    Jeecg集成activiti.docx Jeecg集成activiti是一个关于如何将activiti集成到Jeecg平台上的指南。下面是从给定的文件中提取的相关知识点: 1. activiti项目结构:activiti项目是一个Maven项目,包含了数据库文件,...

Global site tag (gtag.js) - Google Analytics