【问题标题】:JMS / HornetQ = How to Create a JMS Queue programmatically from the client?JMS / HornetQ = 如何从客户端以编程方式创建 JMS 队列?
【发布时间】:2017-04-28 02:31:09
【问题描述】:

我知道 JMS 队列可以通过 hornetq-jmx.xml 配置文件在 HornetQ 中创建。但我想从客户端执行此操作?

我试过了:

HornetQJMSClient.createQueue(queueName);

但这似乎没有创建队列(在 hornetq 服务器上)?当我尝试为这个队列创建一个消费者时,我总是得到一个队列未知的异常。

非常感谢有关如何从客户端创建 JMS 队列的建议。 (如果可能的话,我根本不想在客户端和服务器上使用 JNDI)。

更新:

我不介意使用任何 HornetQs 核心 API(相对于 JMS API)从客户端创建队列。我的问题是:有没有办法从客户端创建队列(使用 JMS API 或使用 HornetQ Core API)。

【问题讨论】:

    标签: java jms hornetq


    【解决方案1】:

    您不需要...它需要您在其配置文件中指定队列的名称(JMS 或核心队列)。

    即使名称暗示它,当您调用 createQueue() 方法时,您不会“创建”队列,您只需在客户端进行查找并注册它以使用它(因此它会检查它是否存在或不是)。

    您从中获得的最接近的方法是创建临时队列,通常是在您实现请求-响应行为时。

    【讨论】:

    • 你好埃弗顿。首先非常感谢您的回答!我是 HornetQ 的新手:(我相应地更新了问题)。以防万一您知道:您是否知道任何允许使用核心 API 在服务器上创建它们的类,例如管理 API? (但不是 JMX)。我还没有找到类似的东西,但也许它存在......)谢谢。
    • 检查下面的@Clebert 答案。 :)
    • 这是一个解决方案,我终于找到了(当知道要搜索什么时):community.jboss.org/thread/165303(您可以将其整合到您的答案中,使其更简洁;-)
    【解决方案2】:

    您可以使用管理 API 创建队列。

    在未来的版本(可能是 2.3.0)中,session.createQueue 和 createTopic 也将创建物理队列(当然,只要您有授权)。

    【讨论】:

    • 你好克莱伯特。非常感谢您的帮助!!只是想说,您似乎来自 Jboss/HornetQ 团队:感谢您的出色项目!保持良好的工作。 Hornet 是非常酷的产品,例如 infinispan(以及许多来自 jboss 的其他东西)。谢谢。
    【解决方案3】:

    这可能对使用核心 API 创建队列有一点帮助: http://community.jboss.org/message/624481

    【讨论】:

      猜你喜欢
      • 2013-02-15
      • 2013-06-21
      • 2012-10-08
      • 1970-01-01
      • 2012-10-26
      • 2015-06-03
      • 2017-10-14
      • 1970-01-01
      • 2015-03-13
      相关资源
      最近更新 更多