maven依赖
<!-- activeMQ -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>5.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.9.0</version>
</dependency>
applicationcontext-amq.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
destroy-method="stop">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>tcp://127.0.0.1:61616</value>
</property>
</bean>
</property>
<property name="maxConnections" value="50"></property>
</bean>
<!--使用缓存可以提升效率-->
<bean id="cachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="jmsFactory"/>
<property name="sessionCacheSize" value="1"/>
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="cachingConnectionFactory"/>
<property name="messageConverter">
<bean class="org.springframework.jms.support.converter.SimpleMessageConverter"/>
</property>
</bean>
<!--Queue,消息接受队列-->
<bean id="destinationQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg name="name" value="CLIENT.MESSAGES"/>
</bean>
<!--Queue,消息回复队列
<bean id="replyQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg name="name" value="REPLY.MESSAGES"/>
</bean>-->
<!-- <bean id="replyMessageListener" class="com.htht.ocean.mq.ReplyMessageListener"></bean>
<bean id="jmsContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsFactory" />
<property name="destination" ref="destinationQueue" />
<property name="messageListener" ref="replyMessageListener" />
</bean> -->
</beans>
监听(接收消息)
package com.ocean.mq;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.Message;
import javax.jms.MessageListener;
import org.springframework.beans.factory.annotation.Autowired;
public class ReplyMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
System.err.println(message);
if (message instanceof MapMessage) {
MapMessage mapMsg = (MapMessage) message;
try {
String dataType = mapMsg.getString("dataType");
String filePath = mapMsg.getString("filePath");
String stationCode = mapMsg.getString("stationCode");
System.out.println(mapMsg.getString("dataType")+"-----"+mapMsg.getString("filePath"));
//处理
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
生产者(发送消息)
package com.ocean.service;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.Message;
import javax.jms.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Service;
/**
*
* @author
* @Date 2018年8月27日 下午5:54:47
*
*
*/
@Service
public class FileTransferStateHandler {
@Resource(name = "jmsTemplate")
private JmsTemplate jmsTemplate;
//消息接收队列
@Resource(name = "destinationQueue")
private Destination destination;
/**
*
* @param ip
* @return
*/
public boolean selectTransInfoByIp(){
// 发送消息
jmsTemplate.send(destination, new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
MapMessage message = session.createMapMessage();
//
message.setString("dataType", "1111");
//
message.setString("filePath","1111");
//
message.setString("stationCode","1111");
System.out.println("4 "+destination);
return message;
}
});
return true;
}
}