java - How to make a JMS Producer to listen to a Response back from Consumer using TemporaryQueue? -
i made java component in mule flow sends message queue, want programatically instead of using mule jms component.
from producer got code:
@override public object oncall(muleeventcontext eventcontext) throws exception { string payload = eventcontext.getmessage().getpayloadasstring(); jmsconnector amqconnector = (jmsconnector) eventcontext.getmulecontext().getregistry().lookupconnector("active_mq"); connectionfactory factory = amqconnector.getconnectionfactory(); connection connection; connection = factory.createconnection(); try { connection.start(); session session = connection.createsession(false, session.auto_acknowledge); queue queue = session.createqueue("examplequeue"); messageproducer producer = session.createproducer(queue); temporaryqueue replyqueue = session.createtemporaryqueue(); textmessage message = session.createtextmessage(payload); message.setjmsreplyto(replyqueue); message.setjmsdestination(queue); message.setjmscorrelationid("testid"); producer.send(message, deliverymode.non_persistent, 0, 5000); messageconsumer consumer = session.createconsumer(replyqueue); messagelistener listener = consumer.getmessagelistener(); listener.onmessage(message); }finally { connection.close(); } return eventcontext; }
now, consumer got normal mule jms component listening same queue (examplequeue).
now, want request-response. when run now, i'm getting nullpointerexception @ line messagelistener listener = consumer.getmessagelistener();
how can make client producer listening temporaryqueue until gets response message?
thanks
made :d
had add this:
messageconsumer consumer = session.createconsumer(replyqueue); textmessage receivedmessage = (textmessage) consumer.receive(); text = receivedmessage.gettext();
in order text consumer!
Comments
Post a Comment