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

NiFi的PublishJMS处理器如何配置以将属性作为JMS头发送

你遇到的问题是NiFi 1.9版本PublishJMS处理器的内置规则导致的,jms.开头的属性默认被识别为系统保留前缀,不会被「作为JMS头发送的属性(正则)」规则匹配,不管正则写的是啥都会被过滤,这是1.9版本的固定逻辑,不是配置错误。

修复配置步骤

方案一(推荐):调整自定义属性前缀

  • 把你添加的所有jms.开头的FlowFile属性重命名,去掉jms.前缀,比如jms.orderId改为orderId,或者替换为其他自定义前缀如myattr.
  • 保持「作为JMS头发送的属性(正则)」为默认值.*即可,也可以写更精确的正则比如order.*|myattr\..*缩小匹配范围,避免发送无效系统属性
  • 确认PublishJMS处理器的「使用消息属性的原始类型」配置为true,避免非字符串类型的属性转换失败被丢弃

方案二:保留jms.前缀的调整方式

如果你的业务逻辑必须用jms.开头的属性名,需要额外修改系统头包含规则:

  • 找到PublishJMS处理器的「要包括的JMS系统头」配置项
  • 把你需要发送的jms.开头的属性名逐个填入,多个属性用英文逗号分隔
  • 保持「作为JMS头发送的属性(正则)」为.*即可
避坑提示
  • 不要修改ActiveMQJMSConnectionFactoryProvider控制器服务的「属性命名策略」配置,保持默认的DEFAULT即可,修改为其他值会导致自定义属性被过滤
  • 所有JMS头属性名不能包含空格、特殊符号,必须符合Java变量命名规范,否则会被ActiveMQ自动丢弃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:54:04