jms queuebrowser#getEnumeration始终为空

时间:2015-02-04 10:12:34

标签: java spring jms messaging

我正在为JMS使用jbossall-client jar,我是消息传递的新手。每当我尝试浏览我发送消息的队列(它是一个对象消息)时,我的qBrowser.getEnumeration().hasMoreElements();

总是得到'假'

这是我创建连接的方式:

 public void initialize() throws Exception {
  try {
    InitialContext initialContext = new InitialContext(contextProperties);
    connectionFactory = (QueueConnectionFactory) initialContext.lookup(connectionFactoryName);
    queue             = (Queue) initialContext.lookup("queue/" + queueName);
    initialContext.close();
  } catch (NamingException e) {
    throw new Exception("Error initializing enqueuer for " + queueName, e);
  }
}

 public MyQueueConnection openQueueConnection() throws JMSException {
  QueueConnection connection = null;
  try {
    connection = connectionFactory.createQueueConnection();
    connection.start();

    QueueSession session = connection.createQueueSession(true, QueueSession.DUPS_OK_ACKNOWLEDGE);

    QueueSender  sender  = session.createSender(queue);
    sender.setDeliveryMode(DeliveryMode.PERSISTENT);

    return new MyQueueConnection(connection, session, sender);

  } catch (JMSException e) {
    throw e;
  }
}

我是否需要使用QueueConnection / QueueSession / QueueSender或其他方式配置任何内容来浏览队列中的消息?这是我需要在jboss属性中配置的东西吗? (我在singleton-MDB中执行此操作;此项目是一个spring框架项目)

请指教;提前致谢。

1 个答案:

答案 0 :(得分:0)

只是对另一个的建议。 我用过hornetQ

  1. 在调用 getEnumeration()之后,请检查您创建的QueueReceiver createReceiver()
  2. 确保您开始连接 connection.start()
  3. Check the link for bug Check the custom size