Is it possible to do RMI-like, request-reply communication with JMS?
No and yes. JMS provides no analog to structured, remote method invocation, that is, with strong data typing of arguments packaged succinctly in a single method call, and with a type-checked return value.
On the other hand, for quick-and-dirty synchronous communication from a client that normally plays the role of a consumer with respect to some topic, the consumer client can use QueueRequestor or TopicRequestor to send a message via a temporary queue/topic and wait for a reply. Communication is message-oriented; thus, it is somewhat unstructured, or at least, differently structured, compared to a method invocation.