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

JBPM 7.74.1自定义带参查询在Kie Server中无法执行求助

JBPM 7.74.1 带参数自定义查询故障排查方案
  • 核对请求体的参数定义完整性
    提交自定义查询时,必须在请求JSON中明确声明参数的名称和类型,否则Kie Server无法正确解析参数绑定。
    用命名参数的正确请求示例:

    {
      "name": "queryWithStatusParamSQL",
      "dataSource": "${org.kie.server.persistence.ds}",
      "expression": "SELECT * FROM task WHERE status = :statusParam",
      "target": "CUSTOM",
      "parameters": [
        {"name": "statusParam", "type": "java.lang.String"}
      ]
    }
    

    若用占位符?,需保证parameters数组的顺序与SQL中占位符的位置严格对应,数组第一个元素对应第一个?。

  • 验证数据源配置的有效性
    ${org.kie.server.persistence.ds}是Kie Server的系统属性占位符,需确认该属性已在Kie Server配置中正确定义并指向有效数据源。可以通过访问/kie-server/services/rest/server/info端点查看系统属性列表,确认属性值存在且正确。
    也可以直接替换为数据源的实际JNDI名称(如java:jboss/datasources/jbpmDS)进行测试,排除属性解析失败的可能。

  • 检查SQL语句的兼容性与正确性
    先在数据库客户端中直接执行SQL语句(替换参数为实际值),确认语句本身可以正常运行。注意:

    • 若status是数据库关键字,需用反引号(MySQL)或双引号(PostgreSQL)包裹,比如SELECT * FROM task WHERE \status` = :statusParam`
    • 避免使用JBPM查询引擎不支持的数据库特定语法,比如某些数据库的自定义函数。
  • 查看Kie Server日志定位具体错误
    直接查看Kie Server的日志文件(如WildFly下的standalone/log/server.log),搜索查询名称queryWithStatusParamSQL相关的日志条目,通常会明确给出失败原因:比如参数类型不匹配、数据源连接失败、SQL语法错误等,这是最直接的排查方式。

  • 确认查询执行时的参数传递格式
    创建查询成功后,执行查询的请求体参数格式必须与定义匹配:

    • 命名参数的执行请求示例:
      {
        "queryName": "queryWithStatusParamSQL",
        "parameters": {
          "statusParam": "Completed"
        }
      }
      
    • 占位符?的执行请求示例:
      {
        "queryName": "queryWithStatusParamSQL",
        "parameters": ["Completed"]
      }
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 12:17:34