Reputation: 11
client side request:
public Message receive(String message, String queueName) {
String text = null;
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
"tcp://10.0.0.0:61616");
String userName = "smx";
String password = "smx";
Connection connection;
Message response =null;
try {
connection = connectionFactory.createConnection(userName, password);
connection.start();
((ActiveMQConnectionFactory) connectionFactory)
.setDispatchAsync(false);
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
Queue destination = session.createQueue(queueName);
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
TextMessage textMessage = session.createTextMessage(message);
Queue tempQueue = session.createQueue(queueName);
textMessage.setJMSReplyTo(tempQueue);
producer.send(textMessage);
MessageConsumer consumer = session.createConsumer(tempQueue);
response = consumer.receive();
response.acknowledge();
session.close();
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
return response;
}
server side:
public void configure() throws Exception {
from("activemq:queue:GET_QUEUE?disableReplyTo=true")
.setExchangePattern(ExchangePattern.InOut)
.to("freemarker:Response.ftl")
.inOnly("activemq:queue:GET_QUEUE");
}
the following thing i have already tried did not get results 1)activemq:queue:GET_QUEUE?disableReplyTo=true&concurrentConsumers=5
2)activemq:queue:GET_QUEUE?disableReplyTo=true&concurrentConsumers=1&maxConcurrentConsumers=5
3)activemq:queue:GET_QUEUE?disableReplyTo=true&useMessageIDAsCorrelationID=true&concurrentConsumers=5
4)activemq:queue:GET_QUEUE?disableReplyTo=true&useMessageIDAsCorrelationID=true&concurrentConsumers=5&asyncConsumer=true
Upvotes: 0
Views: 181
Reputation: 55585
You have disabled replyTo in Camel which you should not do, then remove the last inOnly as Camel will automatic send the message back to the reply to queue when the route is done.
Upvotes: 1