ActiveMQ5.3.2+Spring2.5
【applicationContext.xml】
<bean id="connectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616" />
</bean>
<bean id="jmsTemplate"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="defaultDestinationName" value="cmpp" />
</bean>
<bean id="producer" class="com.zero.jms.msgProducer">
<property name="jmsTemplate" ref="jmsTemplate" />
</bean>
<bean id="messageListener"
class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
<constructor-arg>
<bean class="com.zero.jms.msgConsumer" />
</constructor-arg>
<property name="defaultListenerMethod" value="onMessage" />
</bean>
<bean id="listenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destinationName" value="cmpp" />
<property name="messageListener" ref="messageListener" />
</bean>
【msgProducer.java】
public class msgProducer{
private JmsTemplate jmsTemplate;
public void send(final String text){
System.out.println("发送消息:"+text);
jmsTemplate.send(new MessageCreator(){
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage(text);
}
});
}
public JmsTemplate getJmsTemplate() {
return jmsTemplate;
}
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
}
【msgConsumer.java】
public class msgConsumer implements MessageListener{
public void onMessage(Message message) {
if (message instanceof TextMessage) {
TextMessage text = (TextMessage)message;
try{
System.out.println("接受消息:" + text.getText());
}catch (JMSException e) {
e.printStackTrace();
}
}
}
}
【test.java】
public static void main(String[] args) {
ApplicationContext xt = new ClassPathXmlApplicationContext("applicationContext.xml");
msgProducer producer = (msgProducer) xt.getBean("producer");
producer.send("12");
}
【问题】
使用test.java测试程序的时候,消息可以发送也可以接收,但是如果我发消息发的比较平凡的话,也就是连续的调用test.java,消息任然是可以发送和接收,会出现类似像系统中的缓存一样,例如发送一条消息aa(第一次成功发送与接收),连续发的话,接收到的可能为多个aa,甚至会出现很久之前所发送过的内容也会出现,如果相隔大概5到10秒钟发一次的话,就没有这样的问题,不知道是java代码错了还是spring配置错了,有请朋友们帮忙看下吧...不胜感激!
ActiveMQ与Spring实现JMS的问题?
答案:1 悬赏:20 手机版
解决时间 2021-08-24 06:40
- 提问者网友:呐年旧曙光
- 2021-08-23 08:09
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 2021-08-23 09:04
Thread.sleep(5000);
延时加载
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯