关于activemq的返回数据问题

vincent_shaw 2013-02-21 12:11:33
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;
}

}
...全文
322 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
gymak 2013-02-21
  • 打赏
  • 举报
回复
我也有activemq的问题,希望版主推荐高手回答问题啊

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧