如何通过Java Compute节点为JMSReceive节点覆盖MessageCorrelationIDSelector

时间:2019-03-28 16:02:27

标签: java ibm-integration-bus

我需要从JMS队列中读取消息,并根据流中间的JMSCorrelationID过滤消息。所以我用了JMSReceiveNode。 JMSCorrelationID是动态的。所以我尝试通过java计算节点来超越MessageCorrelationIDSelector,如下所示。我在本地环境中添加了相关树。

我的Java Compute节点代码:

localEnv.getRootElement().createElementAsLastChild(MbElement.TYPE_NAME, "JMS", null). createElementAsLastChild(MbElement.TYPE_NAME, "Receive", null). createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "MessageCorrelationIDSelector", dynamicID);'

但是正在获取JMS目的地未发现异常。如果我从本地环境中删除本地MessageCorrelationIDSelector,则可以正常工作。

如下所示的本地环境树

'LocalEnvironment
 JMS
         Receive                    MessageCorrelationIDSelector:CHARACTER:123457

1 个答案:

答案 0 :(得分:0)

LocalEnvironment
JMS
        Receive
                MessageCorrelationIDSelector:CHARACTER:='1111'
                Source:CHARACTER:createArrangementQueue
                QCF:CHARACTER:jms/RemoteConnectionFactory
                JNDIBindingLocation:CHARACTER:http-remoting://localhost:9089
                InitialContextFactory:CHARACTER:org.jboss.naming.remote.client.InitialContextFactory
                JMSProvider:CHARACTER:jboss71JMS

@Jérém提到其工作正常。我们需要像上面那样覆盖所有属性。