JMS / HornetQ =如何以编程方式从客户端创建JMS队列?

时间:2011-08-10 14:21:50

标签: java jms hornetq

我知道可以通过hornetq-jmx.xml配置文件在HornetQ中创建JMS队列。但我想从客户那里做到这一点?

我试过了:

HornetQJMSClient.createQueue(queueName);

但这似乎没有创建队列(在hornetq服务器上)?当我尝试为此队列创建一个使用者时,我总是得到一个例外,即队列是未知的。

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

更新

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

3 个答案:

答案 0 :(得分:2)

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

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

你最接近它的是创建临时队列,通常在你实现请求 - 响应行为时。

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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