簡體   English   中英

未使用ActiveMQ VM傳輸從生產者接收消息

[英]Not receiving message from producer using ActiveMQ VM Transport

我現在正在使用activeMQ tcp // localhost URL安靜一段時間,我對此沒有問題。 當前,我正在嘗試使用“ vm // localhost ”連接器,但是在接收來自生產者的消息時遇到問題。 我使用的是彈簧靴,生產者和消費者都在不同的罐子里。 我的消費者收到空消息。 我想念什么嗎? 下面是我的代碼(取自apache網站)。 提前致謝

Producer.jar

ActiveMQConnectionFactory connectionFactory = 
new ActiveMQConnectionFactory("vm://localhost");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("TEST.FOO");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

String text = "Hello world! From: " + Thread.currentThread().getName() + " : " + this.hashCode();
TextMessage message = session.createTextMessage(text);

System.out.println("Sent message: " + message.hashCode() + " : " + Thread.currentThread().getName());
producer.send(message);

session.close();
connection.close();

Consumer.jar

ActiveMQConnectionFactory connectionFactory =
new ActiveMQConnectionFactory("vm://localhost");
Connection connection = connectionFactory.createConnection();
connection.start();

connection.setExceptionListener(this);

Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("TEST.FOO");

MessageConsumer consumer = session.createConsumer(destination);

// Wait for a message
Message message = consumer.receive(10000);

if (message instanceof TextMessage) {
    TextMessage textMessage = (TextMessage) message;
    String text = textMessage.getText();
    System.out.println("Received 1: " + text);
} else {
    System.out.println("Received 2: " + message);
}

consumer.close();
session.close();
connection.close();

我確定,虛擬機是虛擬機內部的傳輸方式! 因此無法解決,因此解決方案是2個客戶端之一需要使用vm transport,而另一個tcp和ActiveMQ是在其中一個使用vm transport啟動的,或者將2個組件嵌入同一VM中。

查看相同用例的另一個答案如何在兩個應用程序都使用嵌入式activemq時將Jms消息從一個Spring Boot應用程序發送到另一個

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM