我需要从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
答案 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提到其工作正常。我们需要像上面那样覆盖所有属性。