使用 Maven 集成 Activiti Modeler

2023-12-11

如何将 Activiti Modeler 集成到自己的 Web 应用程序中并保留 Maven 建议的所有优点?

问题是Maven中的Activiti Modeler是Activiti Explorer的一部分。网上有一些问题来自那些想要开发自己的 Web 应用程序、使用 Modeler 编辑流程但不需要其他 Explorer 功能的人。

例如,没有 activiti-explorer 的 Activiti BPM or 如何将 Activiti Modeller 集成到自己的 Web 应用程序中


我已经成功地使用 Maven 覆盖功能来做到这一点:

1) 包括 Explorer Web 应用程序的覆盖,但仅包括 Modeler 文件:

pom.xml:

    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-webapp-explorer2</artifactId>
        <version>${activiti-version}</version>
        <type>war</type>
        <scope>compile</scope>
    </dependency>
....
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <overlays>
                    <overlay>
                        <groupId>org.activiti</groupId>
                        <artifactId>activiti-webapp-explorer2</artifactId>
                        <includes>
                            <include>WEB-INF/classes/stencilset.json</include>   
                            <include>editor-app/**</include>   
                            <include>modeler.html</include>   
                        </includes>
                    </overlay>
                </overlays>
            </configuration>
        </plugin>

2)添加建模器Spring资源。它们用于检索和保存模型(注意:不是流程定义,这是有点不同的事情),也用于服务模板集:

    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-modeler</artifactId>
        <version>${activiti-version}</version>
    </dependency>

3)就是这样,但它实际上不会在您的应用程序中工作,除非它被称为“activiti-explorer”。将一个名为“editor-app/app-cfg.js”的文件添加到您的项目中,并在其中添加以下内容:

编辑器应用程序/应用程序cfg.js:

'use strict';
var ACTIVITI = ACTIVITI || {};
ACTIVITI.CONFIG = {
        'contextRoot' : window.location.pathname.substring(0,window.location.pathname.lastIndexOf('/')),
};

这实际上是本机 app-cfg 的副本,其中包含上下文根的奇怪“/activiti-explorer/service”设置。我们将其更改为更通用的设置。它将用于从存储库中检索模型。我们的文件将覆盖 Explorer Web 应用程序附带的文件。

Notes:

a) 您必须自己管理流程定义到模型的转换。有关想法,请参阅https://github.com/Activiti/Activiti/blob/activiti-5.19.0.1/modules/activiti-explorer/src/main/java/org/activiti/editor/ui/ConvertProcessDefinitionPopupWindow.java

b)我必须避免使用一个杰克逊对象映射器来完成所有事情,我还没有研究为什么这不起作用:

<bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper">
</bean>    
<mvc:annotation-driven>
    <!-- using the same objectMapper leads to stencilset resource being served as string -->
    <mvc:message-converters register-defaults="true">
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="objectMapper" ref="objectMapper"/>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

不要这样做或进行更多研究,因为这实际上破坏了服务于“activiti-modeler”部分的模板集资源。它开始将模板集作为格式错误的字符串而不是正常的 json 提供服务。

c) 我不知道如何在 Modeler 保存功能中注入 CSRF 安全标头,所以我将其关闭 - 如果您不使用 Spring Security,请丢弃它

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Maven 集成 Activiti Modeler 的相关文章

随机推荐

  • ng-单击复选框不更新表单的 $pristine 属性

    AngularJS 第一次更新隐藏文本时 表单的 pristine 属性不会更新 我有一个 AngularJS 表单 我想知道表单的任何字段是否已更新 当复选框更新时 相应的 pristine属性未更新 所以我添加了一个隐藏的文本框 它绑定
  • 将模型导入到 Three.js - 性能

    对于从要在 Three js JavaScript 应用程序中使用的文件加载 3D 模型的性能 尤其是在 Blender 中生成模型的情况 是否有一种好的 推荐的方法 我目前有以下工作流程 在 Blender 中创建模型 使用 Three
  • 如何使用C在Linux中获取已安装驱动器的卷名?

    我目前正在编写程序 该程序必须显示有关已安装闪存驱动器的信息 我想显示完整空间 可用空间 文件系统类型和卷名称 但问题是 我找不到任何可以获取卷名称 卷标签 的 API 有没有任何api可以做到这一点 附注我正在通过的完整空间 可用空间和文
  • Redis PubSub 订阅机制是如何工作的?

    我想创建一个发布 订阅基础设施 其中每个订阅者都将收听多个 例如 100k 频道 我认为使用 Redis PubSub 来实现此目的 但我不确定订阅数千个频道是否是最佳实践 为了回答这个问题 我想知道 Redis 中的订阅机制如何在后台工作
  • docker-compose - 重启策略 - 不保留图像中的更改

    让我们考虑以下示例 version 3 services some service build restart unless stopped This docker compose工作正常 但是在重新启动期间 它会保留先前运行 重新启动之前
  • 如何从排序列表中选择小于给定整数的元素?

    我有一系列素数 例如0 到 1000 之间的整数 primes 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 1
  • 具有 URL 值的 HTML 标记属性的完整列表?

    除了以下属性之外 是否还有以 URL 作为值的 HTML 标记属性 href标签上的属性 a area src标签上的属性 img a
  • 将字符串转换为日期时间 vb.net

    我需要将字符串转换为日期格式 要求是如果选择当前月份 则日期应为 getdate 如果选择任何其他月份 则应选择该月的第一个月 输入的数据是 2010 年 1 月 2010 年 2 月 等 但它应该作为 01 01 10 或 02 01 1
  • JQuery - on()-方法/动态处理程序

    我有一份等候名单和一份参与者名单 管理员可以通过单击等待列表中用户名旁边的 div 将用户添加到参与者列表中 单击 div 将某人添加到参与者列表后 将调用 ajax 请求 gt 该请求会更新数据库中用户的状态 并且 如果 ajax 请求成
  • WebPack TypeError:无法读取未定义的属性“请求”

    我继承了一个现有的 Angular2 项目 当我跑步时NPM start我收到一个很长的错误 开头是 Html Webpack 插件 类型错误 无法读取未定义的属性 请求 完整的错误输出 http textuploader com d5n2
  • Android CoreLocation 标题

    我目前正在研究一种算法 需要准确估计移动设备的航向 对于iOS中的开发 我不必估计用户标题 因为框架已经提供了以下值trueHeading通过 CoreLocation 框架 所以我不必实现我自己的融合算法 这的美丽trueHeading是
  • Android 中的 Websocket 和 cookie

    我正在开发一个 Android 应用程序 我需要一个 Websockets 框架 该框架允许我在 Websocket 的第一个连接中发送 cookie 而不是在每条消息中 我试过了Autobahn and Java WebSocket但他们
  • facebook graph api 图片

    如何使用 graph api 检索朋友的图片 我已经设法使用这个来获取我朋友的个人资料图片 https graph facebook com user id 但是 我想获取我朋友发布的照片 我能够得到这个数据 link http www f
  • PHP 从 Javascript 加密流文件

    我正在开发一个用于大文件的文件上传器 从 HTML 脚本上传并使用 ArrayBuffer 和 Unit8Array 从 Javascript 按字节发送到 PHP PHP 脚本将流式传输文件并将其保存到文件夹中 这是我的 Javascri
  • 使用来自多个表的信息来记录交付的通用或特定 DAO?

    我正在创建一个 Web 应用程序 让用户使用 spring 和 hibernate 通过 GUI 存储和检索数据库中的信息 在创建 DAO 和服务层时我陷入了困境 我想创建一个可以添加新交付的方法 在我的交货表中我有产品编号 and 客户I
  • Prolific PL2303 串行端口至 250000bps

    我需要使用 c 以 250kbps 的速度运行我的 dev ttyUSB0 多产的 pl2303 USB RS232 转换器 我到处查看 每个人都说最接近的可达到的速度是 230400 bps http lxr linux no linux
  • 通用量化和统一,一个例子

    给出运行 monad 的以下签名ST runST forall s ST s a gt a 和功能 newVar a gt ST s MutVar s a readVar MutVar s a gt ST s a 那么Haskell编译器将
  • Facebook API for Android:如何获取有关用户好友的扩展信息?

    我正在开发小型 Android 应用程序 试图添加 Facebook 支持 主要问题 我只能获取有关用户朋友的基本信息 ID 姓名 应用程序权限列表 offline access仅用于测试 很快就会被删除 String sPermissio
  • 我如何使用 ruby​​ 迭代这个 json 文档?

    我有一个ruby代码块 如下 require elasticsearch require json search term big data city Hong Kong client Elasticsearch Client new lo
  • 使用 Maven 集成 Activiti Modeler

    如何将 Activiti Modeler 集成到自己的 Web 应用程序中并保留 Maven 建议的所有优点 问题是Maven中的Activiti Modeler是Activiti Explorer的一部分 网上有一些问题来自那些想要开发自