结合Spring2.0和ActiveMQ进行异步消息调用

时间:2008年07月02日   作者: 河外科技  

     <!-- Message porducer -->

     <bean id="producer"

     class="com.liangj.apmgt.jms.DefaultApmgtMessageProducer">

     <property name="jmsTemplate" ref="jmsTemplate" />

     </bean>

     接着配置监听器,这是Spring2.0新增的功能,配置如下:

     Copy code

     <!-- this is the Message Driven POJO (MDP) -->

     <bean id="messageListener"

     class="org.springframework.jms.listener.adapter.MessageListenerAdapter">

     <constructor-arg>

     <bean

     class="com.liangj.apmgt.jms.DefaultApmgtMessageListener" />

     </constructor-arg>

     <property name="defaultListenerMethod" value="onMessage" />

     <property name="messageConverter" ref="messageConverter" />

     </bean>

     <!-- and this is the attendant message listener container -->

     <bean id="listenerContainer"

     class="org.springframework.jms.listener.DefaultMessageListenerContainer">

     <property name="connectionFactory" ref="connectionFactory" />

     <property name="destinationName" value="${jms.destinationName.cmpp}" />

     <property name="messageSelector" value="${jms.messageSelector}" />

     <property name="messageListener" ref="messageListener" />

     </bean>

    Spring配置监听器有很多种选择,在这里我选择这回种MessageListenerAdapter方法主要是因为这个方法比较灵活。实现他只要一个很普通的java类即可,和JMS以及Spring的耦合度最低。其中方法onMessage可以随便修改方法名,只要在配置文件中对应的修改就好了。

    MessageListenerAdapter还有一个功能就是如果处理方法(我这里是onMessage)返回一个非空值,它将自动返回一个响应消息。这个消息会返回给JMS Reply-To属性定义的目的地(如果存在),或者MessageListenerAdapter设置(如果配置了)的缺省目的地;如果没有定义目的地,那么将产生一个InvalidDestinationException异常(此异常将不会只被捕获而不处理,它将沿着调用堆栈上传)。

    

本文共2页,当前在第2页  1  2  

 

相关新闻:

 

 

 

 

 
打印]    [关闭