You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Camunda用户任务表单不显示问题排查求助

问题排查与解决方案

针对你遇到的用户任务外部表单不显示问题,从核心维度逐一排查:

1. 外部表单引用路径错误

Camunda引用resources目录下的外部表单时,路径需基于classpath根目录。比如表单放在resources/forms/route-selection.html,用户任务的表单引用必须写forms/route-selection.html,不能带/或classpath:前缀,否则引擎无法定位文件。

2. 表单控件与变量绑定不匹配

下拉框需正确绑定routes变量,确保表单代码符合Camunda规范:

<select cam-variable-name="selectedRoute" 
        cam-variable-type="String" 
        cam-options="routes">
    <option value="">请选择路线</option>
</select>

重点检查cam-options="routes"是否与Service Task中设置的变量名完全一致,同时确认变量是表单可解析的键值对结构。

3. 变量序列化方式不兼容

你用Variables.objectValue()将Map序列化为JSON格式的ObjectValue,但Camunda表单引擎默认期望直接使用原生Map类型变量,而非序列化后的包装对象。替换变量设置代码为:

@Override
public void execute(DelegateExecution execution) throws Exception {
    Map<String, String> routes = new HashMap<>();
    routes.put("001", "Route 1");
    routes.put("002", "Route 2");
    routes.put("003", "Route 3");
    // 直接设置原生Map,无需序列化包装
    execution.setVariable("routes", routes);
}

序列化后的ObjectValue需要额外解析逻辑,普通表单控件无法直接识别,改用原生Map后表单才能正确读取下拉选项。

4. 表单文件未被正确打包

检查Spring Boot打包后的jar包,确认表单文件存在于BOOT-INF/classes/[你的表单路径]下。如果表单放在resources/static目录外,需确保Maven/Gradle的资源打包规则包含该文件,避免编译时被忽略。

5. Camunda表单引擎依赖缺失

如果使用Camunda 7.x,确保项目依赖中包含camunda-engine-spring-boot-starter-webapp,该依赖包含表单渲染所需的前端组件。仅引入核心引擎依赖会缺少表单渲染的必要资源。


内容的提问来源于stack exchange,提问作者Rahul Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 20:45:31