Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 1.2.1
-
Fix Version/s: None
-
Labels:None
-
Environment:Linux, Java 5, Spring 2.0-rc2, ActiveMQ 4.0.2
-
Number of attachments :
Description
I'm trying to implement an asynchronous method with a result listener just as in the examples:
public void asyncRequestResponse(String stock, ResultListener listener)
But when I call this method the server complains about a missing destination:
java.lang.UnsupportedOperationException: A destination must be specified.
at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:448)
at org.logicblaze.lingo.jms.impl.OneWayRequestor.doSend(OneWayRequestor.java:196)
I have debugged the code and found out that the destination for the response message the server tries to send is null. And that's because the JMSReplyTo field of the request message is also null.
So I debugged the client side and found out that the remote message is classified as a oneway method by the metadata strategy because the method does have no return value. The invoke method of the JMSClientInterceptor checks this first and if it sees that the method is a OneWay method it just uses the send method of the Requestor which does not set a JMSReplyTo address. I think this is the problem.
I hope this was detailed enough to find the problem.