activemq通过PUB/SUB方式发送消息后,想收到消息处理函数的返回消息,不知道spring里面是怎么配置的,哪位大侠指导一下,例如下述配置文件中pub对象topicMessageProducer发送到topicConsumerA,topicConsumerB两个对象的received方式,并且希望收到receive方法处理后的返回值,应该怎么配置,程序应该怎么改写
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<!--  lets wrap in a pool to avoid creating a connection per send -->
<bean class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory" ref="jmsConnectionFactory" />
</bean>
</property>
<!-- custom MessageConverter -->
<property name="messageConverter" ref="defaultMessageConverter" />
</bean> <!-- converter  -->
<bean id="defaultMessageConverter" class="com.andyao.activemq.DefaultMessageConverter" /> <!-- POJO which send Message uses  Spring JmsTemplate -->
<bean id="topicMessageProducer" class="com.andyao.activemq.TopicMessageProducer">
<property name="template" ref="jmsTemplate" />
<property name="destination" ref="TOPIC" />
</bean>
<!--  Message Driven POJO (MDP) -->
<!-- consumer1 for topic a -->
<bean id="topicConsumerA" class="com.andyao.activemq.TopicConsumerA" /> <!-- consumer2 for topic a -->
<bean id="topicConsumerB" class="com.andyao.activemq.TopicConsumerB" /> <!-- Message Listener for  -->
<bean id="topicListenerA"
class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
<constructor-arg ref="topicConsumerA" />
<!--  may be other method -->
<property name="defaultListenerMethod" value="receive" />
<!-- custom MessageConverter define -->
<property name="messageConverter" ref="defaultMessageConverter" />
</bean> <bean id="topicListenerB"
class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
<constructor-arg ref="topicConsumerB" />
<!--  may be other method -->
<property name="defaultListenerMethod" value="receive" />
<!-- custom MessageConverter define -->
<property name="messageConverter" ref="defaultMessageConverter" />
</bean>

<!--  listener container,MDP无需实现接口 -->
<bean id="topicListenerContainerA"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsConnectionFactory" />
<property name="destination" ref="TOPIC" />
<property name="messageListener" ref="topicListenerA" />
</bean> <bean id="topicListenerContainerB"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsConnectionFactory" />
<property name="destination" ref="TOPIC" />
<property name="messageListener" ref="topicListenerB" />
</bean>
</beans>附代码
import javax.jms.Topic;import org.springframework.jms.core.JmsTemplate;public class TopicMessageProducer {
    
    private JmsTemplate template; private Topic destination; public void setTemplate(JmsTemplate template) {
this.template = template;
} public void setDestination(Topic destination) {
this.destination = destination;
} public void send(FooMessage message) {
template.convertAndSend(this.destination, message);
}
}public class TopicConsumerB { public String receive(FooMessage message) {
System.out.println("*****************接受*TopicConsumerB********************* Topic B : " + message.getId());
return "B success";
}
}
public class TopicConsumerA { public String receive(FooMessage message) {
System.out.println("*****************接受*TopicConsumerA********************* Topic A : " + message.getId());
return "A success";
}
}public class FooMessage implements Serializable {
private int id; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
}}