Glassfish4、web和Java EE JMS

Glassfish4、web和Java EE JMS,java,jsf,jms,Java,Jsf,Jms,我正在尝试使用Glassfish4作为应用程序服务器的JMS Web应用程序,在执行以下方法时遇到问题 public void getMessage() { try { JMSConsumer receiver = context.createConsumer(topic); String text = receiver.receiveBody(String.class); if (text != null) { myList.add(text);

我正在尝试使用Glassfish4作为应用程序服务器的JMS Web应用程序,在执行以下方法时遇到问题

public void getMessage() {
  try {
    JMSConsumer receiver = context.createConsumer(topic);
    String text = receiver.receiveBody(String.class);

    if (text != null) {
      myList.add(text);
    } else {
      FacesMessage facesMessage =
        new FacesMessage("No message received after 1 second");
      FacesContext.getCurrentInstance().addMessage(null, facesMessage);
    }

  } catch (Throwable t) {
    logger.log(Level.SEVERE,
      "ReceiverBean.receiveMessages: Exception: {0}",
      t.toString());
  }
}
此方法位于名为ReceiverBean的托管bean中。这个过程是我从托管bean SenderBean向主题发送一条消息,然后加载receiver.xhtml文件,以便从commandLink调用该方法。但是它不会发生任何事情,除非页面一直等待这个方法被解决

我这篇文章的重点是了解如何在JSF Web应用程序中应用此方法

亲切问候,


Jose

只是更改消费者,
JMSConsumer receiver=context.createConsumer(主题)
对于共享持久消费者,
JMSConsumer receiver=context.createSharedDurableConsumer(主题“MakeItLast”)。这足以解决这个问题。你的问题不清楚。你是说
getMessage
不执行吗?