小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

jeecg + activiti 流程設(shè)計(jì)器

 昵稱45943784 2019-07-23

jeecg 3.4.3 + activiti 5.18.0

activiti 流程設(shè)計(jì)器 示例 源碼

https://download.csdn.net/download/anysun7/10354206

項(xiàng)目pom文件添加activiti依賴:

<dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-engine</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-spring</artifactId>

            <version>${activiti.version}</version>

            <exclusions>

                <exclusion>

                    <artifactId>commons-dbcp</artifactId>

                    <groupId>commons-dbcp</groupId>

                </exclusion>

            </exclusions>

        </dependency>

 

        <dependency>

            <groupId>commons-dbcp</groupId>

            <artifactId>commons-dbcp</artifactId>

            <version>1.4</version>

        </dependency>

 

        <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis</artifactId>

            <version>3.2.5</version>

        </dependency>

 

        <!--<dependency>

            <groupId>javax.activation</groupId>

            <artifactId>activation</artifactId>

            <version>1.1</version>

        </dependency>-->

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-bpmn-model</artifactId>

            <version>${activiti.version}</version>

        </dependency>

        <dependency>

           <groupId>org.activiti</groupId>

           <artifactId>activiti-bpmn-converter</artifactId>

           <version>${activiti.version}</version>

       </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-bpmn-layout</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-common-rest</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-crystalball</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-diagram-rest</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-explorer</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-image-generator</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-json-converter</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-modeler</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-simple-workflow</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.vaadin.addons</groupId>

            <artifactId>dcharts-widget</artifactId>

            <version>0.10.0</version>

        </dependency>

 

        <dependency>

            <groupId>org.activiti</groupId>

            <artifactId>activiti-process-validation</artifactId>

            <version>${activiti.version}</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>xmlgraphics-commons</artifactId>

            <version>1.2</version>

        </dependency>

 

        <dependency>

            <groupId>com.vaadin</groupId>

            <artifactId>vaadin</artifactId>

            <version>6.8.8</version>

        </dependency>

 

        <dependency>

            <groupId>org.imgscalr</groupId>

            <artifactId>imgscalr-lib</artifactId>

            <version>4.2</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.geronimo.specs</groupId>

            <artifactId>geronimo-servlet_3.0_spec</artifactId>

            <version>1.0</version>

            <scope>provided</scope>

        </dependency>

 

        <!--<dependency>

            <groupId>javax</groupId>

            <artifactId>javaee-api</artifactId>

            <version>7.0</version>

        </dependency>-->

 

        <dependency>

            <groupId>joda-time</groupId>

            <artifactId>joda-time</artifactId>

            <version>2.1</version>

        </dependency>

 

        <!--Batik的包主要是用來解析html中的svg的內(nèi)容-->

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-transcoder</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-dom</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-bridge</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-css</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-anim</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-codec</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-ext</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-gvt</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-script</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-js</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-parser</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-svg-dom</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-svggen</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-util</artifactId>

            <version>1.7</version>

        </dependency>

 

        <dependency>

            <groupId>org.apache.xmlgraphics</groupId>

            <artifactId>batik-xml</artifactId>

            <version>1.7</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>org.apache.xmlgraphics</groupId>

            <artifactId>batik-awt-util</artifactId>

            <version>1.7</version>

        </dependency>

 

配置spring-activiti.xml文件

src/main/resources目錄下新建spring-activiti.xml文件,向其中加入以下內(nèi)容

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www./schema/beans"

       xmlns:xsi="http://www./2001/XMLSchema-instance"

       xsi:schemaLocation="http://www./schema/beans   http://www./schema/beans/spring-beans.xsd">

    <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" />

    </bean>

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

    <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">

        <property name="processEngineConfiguration" ref="processEngineConfiguration" />

    </bean>

    <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="managementService" factory-bean="processEngine"

          factory-method="getManagementService" />

    <bean id="identityService" factory-bean="processEngine"

          factory-method="getIdentityService" />

    <bean id="transactionManager"

          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource" />

    </bean>

</beans>

 

web.xml文件,修改context-param,添加了classpath:spring-activiti.xml

 

復(fù)制設(shè)計(jì)器文件

下載activiti-webapp-explorer2的源代碼,

1. activiti-explorer工程中的diagram-viewer,editor-appmodeler.html復(fù)制到工程的src/main/webapp目錄下

 

2. activiti-explorer工程中WEB-INF/classes文件下的stencilset.json,ui.properties,ui.properties.alfresco復(fù)制到工程的src/main/resources目錄下

 

3.modules/目錄中找到org\activiti\rest\diagramorg\activiti\rest\editor這兩個(gè)包,將他們整個(gè)復(fù)制到工程的src/main/java目錄下

 

4.修改spring-mvc.xml文件,在其中加入以下內(nèi)容,使spring在掃描controller類的時(shí)候,也掃描這些包里面的類

 

5.向工程的web.xml文件中添加以下內(nèi)容,讓spring也管理起來帶/service/的鏈接

<!-- activiti -->

    <servlet-mapping>

        <servlet-name>springMvc</servlet-name>

        <url-pattern>/service/*</url-pattern>

    </servlet-mapping>

 

6.打開editor-app/app-cfg.js, 將其中的activiti-explorer”修改為“jeecg”。當(dāng)然,具體項(xiàng)目中這里可能會(huì)經(jīng)常變化,我們可以寫一個(gè)js函數(shù)來自動(dòng)獲取工程的名字,這樣以后將設(shè)計(jì)器集成到其他工程的時(shí)候,就不需要修改這里的內(nèi)容了

 

7.工程的src\main\java\org\activiti\rest\editor目錄下新建一個(gè)java文件,命名為ModuleController

package org.activiti.rest.editor;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.activiti.editor.constants.ModelDataJsonConstants;

import org.activiti.engine.RepositoryService;

import org.activiti.engine.repository.Model;

import org.apache.commons.lang3.StringUtils;

import org.jeecgframework.core.common.controller.BaseController;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

 

import com.fasterxml.jackson.databind.ObjectMapper;

import com.fasterxml.jackson.databind.node.ObjectNode;

 

@Controller

@RequestMapping("/model")

public class ModuleController extends BaseController{

private Logger logger = LoggerFactory.getLogger(ModuleController.class);

@Autowired

private RepositoryService repositoryService;

@RequestMapping(params = "create")

  public void create(HttpServletRequest request, HttpServletResponse response) {

    try {

          String name = "test";

          String key = "test";

          String description = "testModel";

 

          ObjectMapper objectMapper = new ObjectMapper();

      ObjectNode editorNode = objectMapper.createObjectNode();

      editorNode.put("id", "canvas");

      editorNode.put("resourceId", "canvas");

      ObjectNode stencilSetNode = objectMapper.createObjectNode();

      stencilSetNode.put("namespace", "http:///stencilset/bpmn2.0#");

      editorNode.put("stencilset", stencilSetNode);

      Model modelData = repositoryService.newModel();

 

      ObjectNode modelObjectNode = objectMapper.createObjectNode();

      modelObjectNode.put(ModelDataJsonConstants.MODEL_NAME, name);

      modelObjectNode.put(ModelDataJsonConstants.MODEL_REVISION, 1);

      description = StringUtils.defaultString(description);

      modelObjectNode.put(ModelDataJsonConstants.MODEL_DESCRIPTION, description);

      modelData.setMetaInfo(modelObjectNode.toString());

      modelData.setName(name);

      modelData.setKey(StringUtils.defaultString(key));

 

      repositoryService.saveModel(modelData);

      repositoryService.addModelEditorSource(modelData.getId(), editorNode.toString().getBytes("utf-8"));

 

      response.sendRedirect(request.getContextPath() + "/modeler.html?modelId=" + modelData.getId());

    } catch (Exception e) {

      logger.error("創(chuàng)建模型失敗:", e);

    }

  }

}

 

8. 訪問:http://localhost:8080/jeecg/model.do?create

 

 

注:

新版(3.7.2jeecgresponse的處理,添加了org.jeecgframework.core.aop.Wrapper,導(dǎo)致json數(shù)據(jù)返回解析出錯(cuò)。整合時(shí),需處理。

Jeecg修改pom內(nèi)容

Maven版本改為 5.18.0

添加:

<dependency> 

<groupId>com.fasterxml.jackson.core</groupId> 

<artifactId>jackson-databind</artifactId> 

<version>2.2.3</version> 

</dependency>

Springmvc添加 (rest請(qǐng)求數(shù)據(jù) /jeecg/service/model/5001/json

<mvc:annotation-driven />

中途bug:

TypeError: Cannot read property 'split' of undefined

    at Object.ORYX.Core.StencilSet.stencilSet (oryx.debug.js:8647)
    at oryx.debug.js:8625
    at prototype-1.5.1.js:446
    at Array._each (prototype-1.5.1.js:672)
    at Array.each (prototype-1.5.1.js:445)
    at Object.ORYX.Core.StencilSet.stencilSets (oryx.debug.js:8624)
    at classDef.getStencilSets (oryx.debug.js:11715)
    at classDef._createCanvas (oryx.debug.js:11201)
    at classDef.construct (oryx.debug.js:10930)
    at new classDef (oryx.debug.js:1747)

解決思路:遇到該錯(cuò)誤,主要原因是后臺(tái)返回json數(shù)據(jù)時(shí),格式存在問題,請(qǐng)查看response中最終返回到頁面之前的數(shù)據(jù)。查看是否是框架對(duì)數(shù)據(jù)做了處理,尋找相應(yīng)解決方法。

另轉(zhuǎn):

activiti-modeler 工作流設(shè)計(jì)器代碼分析

https://blog.csdn.net/fgstudent/article/details/50668086

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多