У меня есть продюсер JMS и один потребитель брокер ActiveMQ см код ниже:ActiveMQ Не Получение сообщений от производителя
Код отправителя
package activemq;
import javax.jms.ConnectionFactory;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class PlatformNotifier {
public static void main(String[] args) throws Exception{
ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://localhost:61616");
QueueConnection connection=(QueueConnection)connectionFactory.createConnection();
connection.start();
Session session=connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
Queue queue=session.createQueue("QUEUE.NOTIFICATION");
MessageProducer producer=session.createProducer(queue);
String message="from producer";
TextMessage textMessage=session.createTextMessage(message);
producer.send(textMessage);
session.close();
connection.stop();
connection.close();
}//main closing
}//class closing
Receiver Код
package activemq;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
public class ServiceNotifier {
public static void main(String[] args) throws Exception{
System.out.println("Service Notifier");
ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection=connectionFactory.createConnection();
connection.start();
Session session=connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
Destination queue=session.createQueue("QUEUE.NOTIFICATION");
MessageConsumer consumer=session.createConsumer(queue);
Message message=consumer.receive(60*1000);
System.out.println("Message = "+message);
session.close();
connection.stop();
connection.close();
}//main closing
}//class closing
Проблема заключается в том, что очередь ActiveMQ не получает сообщение от отправителя (см. снимок экрана):
Когда я отправляю сообщение с веб-консоли, оно принимается в очереди, но от производителя ничего не приземляется в очереди.
Еще одно забавное поведение: (как видно из кода приемника очереди, приемник выходит после получения первого сообщения), снова, когда я запускаю приемник, он получает одно и то же сообщение и продолжает делать это, пока я не закрою сервер вниз и перезапустить.
Я работаю на Windows 8.1, это первый раз, когда я сталкиваюсь с этой проблемой. Я был бы признателен за помощь.
ActiveMQ -> 5.11.1
Да, сейчас он работает, спасибо за наблюдение, примет ответ +1 – Ironluca