ActiveMQ 使用消息监听器消费消息
public class MessageListenerImpl implements MessageListener {
@SneakyThrows
@Override
public void onMessage(Message message) {
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
System.out.println(textMessage.getText());
}
if (message instanceof MapMessage) {
MapMessage mapMessage = (MapMessage) message;
Enumeration mapNames = mapMessage.getMapNames();
while (mapNames.hasMoreElements()) {
String s = mapNames.nextElement().toString();
System.out.println(s + " --- " + mapMessage.getString(s));
}
}
if (message instanceof ObjectMessage) {
Object object = (Object) ((ObjectMessage) message).getObject();
if (object instanceof List) {
List list = (List) object;
System.out.println(list);
}
if (object instanceof MyUser) {
MyUser myUser = (MyUser) object;
System.out.println(myUser);
}
}
if (message instanceof BytesMessage) {
BytesMessage bytesMessage = (BytesMessage) message;
StringBuilder stringBuilder = new StringBuilder();
byte[] b = new byte[1024];
int len = -1;
while ((len = bytesMessage.readBytes(b)) != -1) {
stringBuilder.append(new String(b, 0, len));
}
System.out.println(stringBuilder.toString());
}
}
}
public class ActivemqConsumerService {
public void receiveMessage() throws Exception {
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnectionFactory.DEFAULT_USER,
ActiveMQConnectionFactory.DEFAULT_PASSWORD,
"tcp://127.0.0.1:61616");
activeMQConnectionFactory.setTrustAllPackages(true);
Connection connection = activeMQConnectionFactory.createConnection();
//false-- 关闭事务;Session.AUTO_ACKNOWLEDGE -- 自动确认
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("user");
MessageConsumer messageConsumer = session.createConsumer(queue);
connection.start();
messageConsumer.setMessageListener(new MessageListenerImpl());
}
public static void main(String[] args) throws Exception {
ActivemqConsumerService activemqConsumerService = new ActivemqConsumerService();
activemqConsumerService.receiveMessage();
}
}
注:
具体的发送信息的代码看:https://wwp666.blog.csdn.net/article/details/119816795