如何在HAL管理控制台中创建消息队列?

时间:2020-03-28 18:58:25

标签: jboss wildfly

我遇到了以下问题:我需要在HAL管理控制台中创建一个消息队列。在视频教程中,它看起来像这样:enter image description here

但是在教程中,据我所知,作者使用的是旧版控制台。我还有另一个菜单,它没有消息菜单项。我发现邮件菜单项:enter image description here

但是据我了解,这不是我所需要的,因为我在这里找不到任何创建队列的方法。也许有人知道如何创建消息队列?我将不胜感激。预先感谢!

2 个答案:

答案 0 :(得分:0)

我没有使用过控制台,因为很难再次编写 next 脚本。相反,我使用CLI来完成此操作。

要创建主题,请执行以下操作:

${wildfly.home}/bin/jboss-cli.sh --connect --controller=127.0.0.1:8080 --command="jms-topic add --topic-address=yourTopicName --entries=java:/jms/yourTopicName"

其中wildfly.home是Wildfly的安装目录。要删除JMS队列,您将运行以下命令:

${wildfly.home}/bin/jboss-cli.sh --connect --controller=127.0.0.1:8080 --command="jms-topic remove --topic-address=yourTopicName"

我的生产者代码如下:

@Stateless
public class MyProducer {
    @Resource(lookup = "java:/jms/yourTopicName")
    private Topic topic;

    @Inject
    private JMSContext context;

    public void sendMessage(MyCustomMessage customMessage) {
        try {
            ObjectMessage message = context.createObjectMessage();
            message.setObject(customMessage);
            context.createProducer().send(topic, message);
        }
        catch (JMSException e) {
            // handle error
        }
    }
}

我的听众看起来像:

@MessageDriven(activationConfig = {
        @ActivationConfigProperty(propertyName = "destinationLookup", propertyValue = "java:/jms/yourTopicName"),
        @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic") })
public class MyListener implements MessageListener {

    @Override
    public void onMessage(Message message) {
    }
}

请记住,要使用JMS,您需要以“完整”配置运行,即

bin/standalone.sh -c standalone-full.xml

答案 1 :(得分:0)

您可能已经在默认模式下启动了Wildfly(>没有JMS代理!)。 如果要在控制台中查看“消息传递”菜单,则需要使用名为standalone-full的备用配置。

在终端会话中,进入Wildfy的“ bin”文件夹,然后键入:

./standalone.sh --server-config=standalone-full.xml

(或Windows的standalone.bat)

更多信息here