如何在wildfly 10服务器中以编程方式创建JMS队列/主题。

时间:2017-05-15 15:06:00

标签: java wildfly-10

我有一个基于swing的应用程序与wildfly 10进行通信。应用程序动态创建队列/主题。每次创建队列/主题时我都无法重启wildfly。我想实例化JMS队列/主题并在不重新启动服务器的情况下使用它。

3 个答案:

答案 0 :(得分:0)

您可以通过它的管理端口(默认为9999)连接到wildfly服务器,并使用它的cli添加队列。

有一个java api,您可以发出jms-queue:add命令 - https://docs.jboss.org/author/display/WFLY10/The+native+management+API

您应该执行以创建jms /主题的命令如下:

/subsystem=messaging-activemq/server=default/jms-queue=queueName:add(entries=["java:/jms/queue/queueName"])
/subsystem=messaging-activemq/server=default/jms-topic=topicName:add(entries=["java:/jms/topic/topicName"])

您还可以使用cli为所有队列添加地址和安全设置。查看此答案,获取可以为消息传递子系统执行的相对完整的命令列表 - How to set up messaging subsystem using CLI in Wildfly

答案 1 :(得分:0)

我找到了解决此问题的方法。我创建了一个xml文件FileName-jms.xml,并开始在标记

下附加新的队列/主题
<?xml version="1.0" encoding="UTF-8"?><messaging-deployment xmlns="urn:jboss:messaging-activemq-deployment:1.0">
   <server name="default">
      <jms-destinations>
        <jms-topic name="topic/response">
            <entry name="java:/jms/topic/response"/>
            <entry name="java:jboss/exported/jms/topic/response"/>
        </jms-topic>
        <jms-queue name="queue/request">
            <entry name="java:/jms/queue/request"/>
            <entry name="java:jboss/exported/jms/queue/request"/>
        </jms-queue>
      </jms-destinations>
   </server>
</messaging-deployment>

部署文件夹下部署此文件,wildfly会将其与其他文件一起部署。通过使用简单的Java代码,可以访问和修改该文件。修改后,服务器会重新部署。

请查看文档以获取更多详细信息 https://docs.jboss.org/author/display/WFLY8/Messaging+configuration

答案 2 :(得分:0)

https://wildscribe.github.io/WildFly/14.0/subsystem/messaging-activemq/server/address-setting/index.html

您可以将auto-create-queue选项设置为true

但是如上所述,仅仅是因为您可以,实际上并不意味着您应该:)