如何使用 jboss-cli 在 WildFly 17 中创建 JMS 队列

Posted

技术标签:

【中文标题】如何使用 jboss-cli 在 WildFly 17 中创建 JMS 队列【英文标题】:How to create JMS queue in WildFly 17 with jboss-cli 【发布时间】:2020-04-25 10:09:55 【问题描述】:

我在域模式下运行 WildFly 17。我们一直在手动添加 JMS 队列,但我宁愿将配置添加为部署脚本的一部分。我可以使用jboss-cli 创建服务器和数据源,但我似乎无法在队列方面取得任何进展。我想最终的 domain_config.xml 看起来像:

<subsystem xmlns="urn:jboss:domain:messaging-activemq:7.0">
   <server name="default">
      ...
      <jms-queue name="MyQueue" entries="java:/queue/MyQueue" durable="true"/>

我查看了How to set up messaging subsystem using CLI in Wildfly,但我得到的只是错误。

[domain@machine.foo.com:9990 /] /subsystem=messaging-activemq/server=default/jms- queue=MyQueue:add(entries=[java:/jms/queue/MyQueue])
Failed to get the list of the operation properties: "WFLYCTL0030: No resource definition is 
registered for address [
    ("subsystem" => "messaging-activemq"),
    ("server" => "default"),
    ("jms-queue" => "MyQueue")
 ]"

domain_config.xml 的完整嵌套是:

    <domain xmlns="urn:jboss:domain:10.0">
      <profiles>
        <profile name="full">
            <subsystem xmlns="urn:jboss:domain:messaging-activemq:7.0">
                <server name="default">
                   <jms-queue name="MyQueue" entries="java:/queue/MyQueue" durable="true"/>

【问题讨论】:

【参考方案1】:

在域模式下工作与独立模式有很大不同,主要是因为你必须指定你的命令应该应用到的“配置文件”。例如,如果您处于域模式,并且域中有一个名为“full”的配置文件,并且您想向该域添加一个名为“foo”的 JMS,那么您可以执行以下命令:

jms-queue --profile=full add --queue-address=foo --entries=["java:/jms/queue/foo"]

您可以使用help --commands 命令查看可用命令的列表,然后深入了解这些命令的帮助。

【讨论】:

这对我来说仍然失败。域和独立之间可能有区别吗?【参考方案2】:

确保使用standalone-full.xml 运行您的wildfly,然后在jboss-cli.sh 中尝试以下命令

jms-queue add --queue-address=myQueue --entries=queues/myQueue

【讨论】:

以上是关于如何使用 jboss-cli 在 WildFly 17 中创建 JMS 队列的主要内容,如果未能解决你的问题,请参考以下文章

JBoss Wildfly 在 jboss-cli 命令行模式下显示属性值

只启动一次 jboss-cli

如何使用 Dockerfile 在启动 docker 容器上运行 jboss-cli

WildFly jboss-cli.sh 添加数据源 Mysql 与 useSSL=false

如何从 Wildfly 中删除 KeyCloak?

如何通过 CLI 获取 Wildfly 服务器状态?