我有一个使用spring,jsf,primefaces的项目,我想用jsmTemplate实现JMS(activeMQ),我的想法是使用一个队列并且选择器获取并发送某些信息,选择器将动态变化,所以我想使用一个监听器,但我不知道如何定义选择器,
这是我的applicationContext.xml
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616" />
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="pubSubDomain" value="false"/>
</bean>
<bean id="springJmsProducer" class="com.SpringJmsProducer">
<property name="jmsTemplate" ref="jmsTemplate" />
<property name="destination" ref="queue.aclaraciones" />
</bean>
<bean id="springJmsConsumer" class="com.SpringJmsConsumer">
<property name="jmsTemplate" ref="jmsTemplate" />
<property name="destination" ref="queue.aclaraciones" />
</bean>
<!-- Opcion para tener un listener escuchando siempre -->
<bean id="queue.aclaraciones" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="queue.aclaraciones" />
</bean>
<bean id="messageListener" class="com.ExampleListener" />
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="destination" ref="queue.aclaraciones"/>
<property name="messageListener" ref="messageListener" />
</bean>
这是我的倾听者:
public class ExampleListener implements MessageListener {
public void onMessage(Message message) {
if (message instanceof TextMessage) {
try {
System.out.println(((TextMessage) message).getText());
}
catch (JMSException ex) {
throw new RuntimeException(ex);
}
}
else {
throw new IllegalArgumentException("Message must be of type TextMessage");
}
}
}
是否可以做类似的事情?
提前感谢。