我在NIFI的PublishJMS处理器中遇到问题,同时从中推送json消息。
注意: 只是为了添加尝试过的各种处理器以查看属性是否可以修改,但没有帮助,我能够找出问题只是因为我正在使用ConsumeJMS&在同一个流程中将JMS一起发布。
要发布的JSON消息:
{"dataprepcomplete":{"modelfamilytype":"property","groupid":"1","claims":[{"requestid":"1","claimid":"10001"},{"requestid":"2","claimid":"10002"}]}}
" JMSCC0051:THE PROPERTY' JMS_IBM_REPORT_PASS_CORREL_ID'应该使用TYPE' JAVA.LANG.INTEGER',NOT' JAVA.LANG.STRING'"根据我之前post中发布的解决方案解决,我可以从下面的流程中将json消息发布到我的MQ队列。
QueryDatabaseTable> ConvertAvroToJSON> PublishJMS
但是当我使用PublishJMS时,我从PublishJMS处理器的早期帖子中得到的错误与下面提到的流程相同。
ConsumeJMS> ReplaceText> PublishJMS
我错过了什么吗?
我是否必须在PublishJMS之前插入其他处理器才能成功发布消息。
对此的任何帮助都将受到高度赞赏。
以下是处理器的属性。
答案 0 :(得分:1)
尝试在发送之前删除以JMS开头的所有属性。使用带有正则表达式掩码的UpdateAttribute。
答案 1 :(得分:1)
谢谢@andrew你是对的。 但我想提出我所做的确切修复以使其工作并克服IBM Websphere MQ jars v7.5及更低版本的问题。
我必须确保使用 UpdateAttribute 处理器从Apache Nifi的Flowfile中删除下面提到的属性。
JMS_IBM_MsgType,JMS_IBM_Encoding& JMS_IBM_PutApplType 强>
并且通过添加具有相同名称的附加属性,在Flowfile中替换与整数相同的属性。
附带的UpdateAttribute处理器的屏幕截图使其正常工作。
希望它有所帮助,因为它是一个解决方法,直到用Apache NIFI修复实际问题。