2014-01-03 2 views
1

Imho, следующий код должен создать новое сообщение, которое будет снова получено снова. Но выход равен нулю. Зачем?ActiveMQ, тема не отскакивает сообщение

public static void main(String[] args) throws JMSException, NamingException { 
     Properties props = new Properties(); 
     props.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.apache.activemq.jndi.ActiveMQInitialContextFactory"); 
     props.setProperty(Context.PROVIDER_URL,"tcp://localhost:61616"); 
     props.setProperty("topic.MyTopic", "FOO.BAR"); 

     // create a new intial context, which loads from jndi.properties file 
     Context ctx = new InitialContext(props); 
     // lookup the connection factory 
     TopicConnectionFactory factory = (TopicConnectionFactory) ctx.lookup("ConnectionFactory"); 
     // create a new TopicConnection for pub/sub messaging 
     TopicConnection conn = factory.createTopicConnection(); 
     // lookup an existing topic 
     Topic mytopic = (Topic) ctx.lookup("MyTopic"); 
     // create a new TopicSession for the client 
     TopicSession session = conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE); 
     // create a new publisher to produce messages 
     TopicPublisher publisher = session.createPublisher(mytopic); 
     // create a new subscriber to receive messages 
     TopicSubscriber subscriber = session.createSubscriber(mytopic); 
     subscriber.setMessageListener(new MessageListener() { 
      public void onMessage(Message msg) { 
       try { 
        TextMessage textMessage = (TextMessage) msg; 
        String txt = textMessage.getText(); 
        System.out.println(txt); 
       } catch (JMSException e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 

     TextMessage message = session.createTextMessage(); 
     message.setText("Kebap: Pommes"); 
     publisher.publish(message); 
    } 

ответ

Смежные вопросы