1

我制作了一个简单的 Jms 项目,其中包含 2 个 java 文件名,MessageSender.java,MessageConsumer.java一个用于向其发送消息Activemq:Queue,另一个用于从Activemq:Queue.Deployed 这个项目中使用消息。Apache Tomcat以下代码是消费者代码。

 ActiveMQConnectionFactory connectionFactory=new ActiveMQConnectionFactory("admin","admin","tcp://localhost:61617?jms.prefetchPolicy.queuePrefetch=1"); 
 Connection connection=connectionFactory.createConnection(); 
 final Session session=connection.createSession(true, Session.CLIENT_ACKNOWLEDGE); 
 Queue queue=session.createQueue("ThermalMap"); 
 javax.jms.MessageConsumer consumer=session.createConsumer(queue); 
 //anonymous class 
  MessageListener listener = new MessageListener() { 
            @Override 
            public void onMessage(Message msg) { 
             // My business code 
            } 
}; 

稍后如果我想更改消费者代码,我不想停止Tomcat,因为如果我停止Tomcat整个jms project不应该工作。所以客户无法向Activemq:Queue. 所以我不想按照这种方式发送消息。

我在想,如果我通过 Activemq 控制台页面停止消费者。我不需要停止Tomcat所以客户端可以正常发送消息。为此我检查AMQ console page,我没有看到任何消费者。

  1. 这是正确的方法吗?

  2. 如果它是正确的方法,我该怎么做。

任何人都可以建议我。

谢谢。

4

1 回答 1

0

在 MessageConsumer 上调用.close()方法。

于 2013-09-16T07:43:09.873 回答