Я пишу программу, использующую среду IDE NetBeans и Java EE с сервером glassfish3. В настоящее время у меня есть 2 потока, A и B. Они оба отправляют сообщения друг другу взад и вперед. Проблема, которую я имею это:Служба сообщений Java - сообщение не получено
1. A sends a message, M1, to B
2. B receives M1
3. B sends M2 to A
4. A hangs waiting on M2
Вот мой код:
Тема A:
//required declarations
producer = session.createProducer(AtoBQueue);
m1 = session.createMapMessage();
m1.setString("m1", "m1Val");
m1.setJMSReplyTo(BtoAQueue);
flag = true;
producer.send(m1);
consumer = session.createConsumer(BtoAQueue);
connection.start();
if(flag){
m2 = (MapMessage) consumer.receive();
String m2Val = m2.getString("m2");
if(m2Val.equals("true")){
flag2 = true;
}
}
...
Тема B:
consumer = session.createConsumer(AtoBQueue);
connection.start();
while(true){
m1 = (MapMessage) consumer.receive();
m1Val = m1.getString("m1");
if(m1Val != null){
flag = true;
}
MessageProducer producer = session.createProducer((Queue m1.getJMSReplyTo());
m2 = session.createMapMessage();
if(m1Val != null){
if(m1Val.equals("m1Val")){
m2.setString("m2", "m2Val");
m2.setJMSReplyTo(AtoBQueue);
producer.send(m2);
}
}
...
}
о возгласы. Я изменил его на m1. Я немного упростил свой код и случайно оставил его там. Это не моя проблема. Проблема, с которой я сталкиваюсь, заключается в том, что A не получает m2 – user972276