【问题标题】:PublishJMS processor fails while publishing json message to IBM Websphere MQPublishJMS 处理器在将 json 消息发布到 IBM Websphere MQ 时失败
【发布时间】:2017-08-31 21:28:53
【问题描述】:

我在从 NIFI 的 PublishJMS 处理器中推送 json 消息时遇到问题。

注意: 只是添加尝试了各种处理器以查看是否可以修改属性,但没有任何帮助,我能够找出问题只是因为我在同一流程中同时使用 ConsumeJMS 和 PublishJMS。

要发布的 JSON 消息:

{"dataprepcomplete":{"modelfamilytype":"property","groupid":"1","claims":[{"requestid":"1","claimid":"10001"},{"requestid":"2","claimid":"10002"}]}}

“JMSCC0051: THE PROPERTY 'JMS_IBM_REPORT_PASS_CORREL_ID' SHOULD SET USING TYPE 'JAVA.LANG.INTEGER', NOT 'JAVA.LANG.STRING'”的问题已根据我之前发布的解决方案 post 和我可以通过以下流程将 json 消息发布到我的 MQ 队列。

QueryDatabaseTable > ConvertAvroToJSON > PublishJMS

但是当我使用 PublishJMS 时,我从 PublishJMS 处理器收到了与之前帖子中报告的相同的错误是下面提到的流程。

ConsumeJMS > ReplaceText > PublishJMS

我错过了什么吗?

我是否必须在 PublishJMS 之前插入其他处理器才能成功发布消息?

对此的任何帮助将不胜感激。

以下是处理器的属性。

ConsumeJMS 属性:

替换文本属性

PublishJMS 属性

PublishJMS 处理器的数据来源

【问题讨论】:

    标签: jms ibm-mq apache-nifi


    【解决方案1】:

    在发送之前尝试删除所有以 JMS 开头的属性。为此,请使用带有正则表达式掩码的 UpdateAttribute。

    【讨论】:

      【解决方案2】:

      谢谢@andrew,你是对的。 但我想进行确切的修复以使其正常工作并克服 IBM Websphere MQ jars v7.5 及更低版本的问题。

      我必须确保使用 UpdateAttribute 处理器从 Apache Nifi 的流文件中删除以下提到的属性。

      JMS_IBM_MsgType、JMS_IBM_Encoding 和 JMS_IBM_PutApplType

      并且还通过添加具有相同名称的附加属性来替换流文件中与整数相同的属性。

      随附的是使其工作的 UpdateAttribute 处理器的屏幕截图。

      希望它有所帮助,因为它是一种解决方法,直到使用 Apache NIFI 解决实际问题。

      【讨论】:

        猜你喜欢
        • 2017-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-31
        • 2011-06-16
        • 1970-01-01
        相关资源
        最近更新 更多