Jms 我们可以在Spring集成中验证消息选择器中XML标记的存在吗

Jms 我们可以在Spring集成中验证消息选择器中XML标记的存在吗,jms,spring-integration,Jms,Spring Integration,我正在为消息侦听器使用以下配置: <bean id="container" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="autoStartup" value="true" /> <property name="connectionFactory" ref="connectionFactory" />

我正在为消息侦听器使用以下配置:

<bean id="container"
    class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="autoStartup" value="true" />
    <property name="connectionFactory" ref="connectionFactory" />
    <property name="destinationName" value="queue.name" />
    <property name="pubSubDomain" value="true" />
    <property name="pubSubNoLocal" value="true" />
    <property name="durableSubscriptionName" value="subscription.id" />
    <property name="subscriptionDurable" value="true" />
    <property name="concurrency" value="1" />
    <property name="messageSelector" value="Trade IS NOT NULL" />
    <property name="sessionTransacted" value="true" />
</bean>

在消息选择器中,Trade是指我应该通过JMS接收的XML中的标记名

这是行不通的。我找了很多。关于如何在消息选择器中设置此条件,我没有得到很多线索。

没有

请参阅消息选择器教程(谷歌:“jms消息选择器教程”)

具体而言:

然后,消息使用者只接收头和属性与选择器匹配的消息。(请参阅消息标题和消息属性。)消息选择器无法根据消息正文的内容选择消息

您不能选择任意消息内容。在发送之前,您需要让发件人将标记的内容添加为消息属性

编辑:

请不要使用旧的文档参考;使用或最新文档始终可以在

要使用Spring集成进行过滤(使用后),可以使用XPathFilter:

<int-xml:xpath-filter id="booleanFilter" input-channel="booleanFilterInput" discard-channel="booleanFilterRejections">
    <si-xml:xpath-expression expression="/foo/bar"/>
</int-xml:xpath-filter>


这将传递任何包含子元素的
..
文档,并拒绝不包含子元素(或非foos)的文档。

我无法更改发件人内容,因此我只希望在末尾包含筛选器。我在url中找到了定义的此链接BooleanTestXPathMessageSelector,我是否可以将其用于我的目的,如果是的话,请您如何引导?另外,我已经尝试过过滤掉队列中的消息。为此,我想到了Xpath过滤器。如果其中一个元素节点不存在,是否可以过滤掉消息。请建议。