浏览 2429 次
锁定老帖子 主题:spring结合activemq发送消息
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-09
发送端配置文件:ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="mqConnnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL"> <value>failover:tcp://127.0.0.1:61616?wireFormat.maxInactivityDuration=0</value> </property> <property name="userName"> <value>system</value> </property> <property name="password"> <value>system</value> </property> </bean> <bean id="singleConnectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory"> <property name="targetConnectionFactory" ref="mqConnnectionFactory"/> </bean> <bean id="SimpleMessageConverter" class="org.springframework.jms.support.converter.SimpleMessageConverter"/> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="singleConnectionFactory"></property> <property name="messageConverter" ref="SimpleMessageConverter"/> <property name="timeToLive" value="180"/> <property name="explicitQosEnabled" value="true"/> <property name="pubSubDomain" value="true"/> </bean> </beans>
PushMain.java package com.jms.activemq; import java.util.HashMap; import java.util.Map; import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.beans.factory.generic.GenericBeanFactoryAccessor; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jms.core.JmsTemplate; public class PushMain { public static void main(String[] args) { ListableBeanFactory lsb = new ClassPathXmlApplicationContext("classpath:com/jms/activemq/ApplicationContext.xml"); GenericBeanFactoryAccessor gba = new GenericBeanFactoryAccessor(lsb); JmsTemplate jmsTemplate = (JmsTemplate) gba.getBean("jmsTemplate"); Map<String,String> map = new HashMap<String,String>(); map.put("fileName","某某文件"); jmsTemplate.convertAndSend("updatefile", map); } }
接收端: 一共三个文件 抽象类:AbstractListener.java package com.jms.activemq; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.Session; import org.springframework.jms.listener.SessionAwareMessageListener; import org.springframework.jms.support.converter.MessageConverter; public abstract class AbstractListener implements MessageListener,SessionAwareMessageListener{ private MessageConverter messageConverter; public void onMessage(Message message) { try { onMessage(message, null); } catch (Throwable ex) { ex.printStackTrace(); } } public abstract void onMessage(Message message, Session session) throws JMSException; abstract void initCreateFile(); public MessageConverter getMessageConverter() { return messageConverter; } public void setMessageConverter(MessageConverter messageConverter) { this.messageConverter = messageConverter; } }
ListenerA.java
package com.jms.activemq; import java.util.Map; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; public class ListenerA extends AbstractListener { @Override void initCreateFile() { } @Override public void onMessage(Message message, Session session) throws JMSException { Map<String,byte[]> map = (Map<String,byte[]>)this.getMessageConverter().fromMessage(message); System.out.println("----"+map.get("fileName")); } }
ListenerB.java
package com.jms.activemq; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.Session; public class ListenerB extends AbstractListener { @Override void initCreateFile() { } @Override public void onMessage(Message message, Session session) throws JMSException { System.out.println("------listenerB"); } }
ApplicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="mqConnnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL"> <value>failover:tcp://127.0.0.1:61616?connectionTimeout=0&wireFormat.maxInactivityDuration=0</value> </property> <property name="userName"> <value>system</value> </property> <property name="password"> <value>system</value> </property> </bean> <bean id="singleConnectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory"> <property name="targetConnectionFactory" ref="mqConnnectionFactory"/> </bean> <bean id="SimpleMessageConverter" class="org.springframework.jms.support.converter.SimpleMessageConverter"/> <bean id="ATL" class="com.jms.activemq.AbstractListener" abstract="true"> <property name="messageConverter" ref="SimpleMessageConverter"/> </bean> <bean id="ListenerContainerB" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="singleConnectionFactory"/> <property name="messageListener"> <bean class="com.jms.activemq.ListenerB" parent="ATL"></bean> </property> <property name="pubSubDomain" value="true"/> <property name="destinationName"><value>DeleteFile</value></property> </bean> <bean id="ListenerContainerA" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="singleConnectionFactory"/> <property name="messageListener"> <bean class="com.jms.activemq.ListenerA" parent="ATL"></bean> </property> <property name="pubSubDomain" value="true"/> <property name="destinationName"><value>updatefile</value></property> </bean> </beans>
因为是tomcat工程, web.xml配置文件如下
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>jms3</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/ApplicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-12-09
看右上角,,,有人发过了。
|
|
返回顶楼 | |