我想使用在AbstractMessageListenerContainer.class类中的messageSelector String,这里是我给出的XML配置。
<bean id="jmsContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="autoStartup" value="${listener.setup}" />
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="paymentResponseQueue" />
<property name="messageListener" ref="myAbstractListener" />
</bean>
<bean id="myAbstractListener"
class="org.springframework.jms.listener.AbstractMessageListenerContainer">
<property name="autoStartup" value="${listener.setup}" />
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="paymentResponseQueue" />
<property name="messageListener" ref="authorisationResponseHandler" />
<property name="messageSelector" value="JMSCorelationId = 'AMM--AS1-6e07c3092bc94f77a183889ababeabc2'" />
</bean>
在提供此配置后,当我启动tomcat时,我的应用程序无法启动。
当我给出如下配置并启动tomcat时,我能够启动我的应用程序并按预期工作。 xyzResponseHandler引用了我正在实现的类文件
public class xyzResponseHandler implements MessageListener{
}
<bean id="jmsContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="autoStartup" value="${listener.setup}" />
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="paymentResponseQueue" />
<property name="messageListener" ref="xyzResponseHandler" />
</bean>
我在First Config中做错了什么。如果我朝错误的方向走,请你纠正我。基本上我想使用messageSelector过滤消息。
答案 0 :(得分:0)
在DefaultMessageListenerContainer中,属性messageListener应该是标准JMS MessageListener对象或Spring SessionAwareMessageListener对象。
参考下面的春季文档
但是你指的是另一个ListenerContainer的bean。