Как создать очередь сообщений в HAL Management Console? - PullRequest
0 голосов
/ 28 марта 2020

Я столкнулся со следующей проблемой: мне нужно создать очередь сообщений в HAL Management Console. В видеоуроке это выглядит так: enter image description here

Но в уроке автор использует старую версию консоли, как я понимаю. У меня есть немного другое меню, в котором нет пункта меню сообщений. Я нашел пункт меню почты: enter image description here

Но, насколько я понимаю, это не то, что мне нужно, так как я не нашел способа создать очередь здесь. Может кто знает, как создать очередь сообщений? Я буду признателен за любую помощь. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

Возможно, вы запустили Wildfly в режиме по умолчанию (> без JMS-брокера!). Если вы хотите увидеть меню «Сообщения» в консоли, вам нужно использовать альтернативную конфигурацию с именем standalone-full.

В терминальном сеансе go в папке «bin» Wildfy, а затем набрать :

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

(или standalone.bat для Windows)

Подробнее здесь

0 голосов
/ 28 марта 2020

Я не использовал консоль, так как трудно сценарий для следующего времени, когда вам нужно сделать это снова. Вместо этого я использовал CLI для этого.

Чтобы создать топи c:

${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

...