Как встроить брокера? Отсутствует брокер. xml - PullRequest
0 голосов
/ 17 июня 2020

В настоящее время я пишу класс, который должен запускать и настраивать встроенный JMS-сервер и после этого выступать посредником между производителями и потребителями. broker.xml, но не приводит никаких примеров. Может ли кто-нибудь сказать мне, что мне нужно поместить в файл.

А также: Будет ли работать BrokerServer, как я себе представляю?

EDIT:

Теперь Я использую этот код:

...

        SecurityConfiguration securityConfig = new SecurityConfiguration();
        securityConfig.addUser("guest", "guest");
        securityConfig.addRole("guest", "guest");
        securityConfig.setDefaultUser("guest");
        ActiveMQJAASSecurityManager securityManager = new ActiveMQJAASSecurityManager(InVMLoginModule.class.getName(), securityConfig);

        // Step 2. Create and start embedded broker.
        ActiveMQServer server = null;
        try {
            server = ActiveMQServers.newActiveMQServer("broker.xml", null, securityManager);
            server.start();
            System.out.println("Started Embedded Broker");
        } catch (Exception e) {
            e.printStackTrace();
        }
...

Но я получаю сообщение об ошибке:

java.net.MalformedURLException: no protocol: broker.xml

Тем не менее, файл находится рядом с классом. Где должен быть файл?

broker.xml

<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:activemq" xsi:schemaLocation="urn:activemq /schema/artemis-server.xsd">
   <core xmlns="urn:activemq:core">

      <persistence-enabled>false</persistence-enabled>

      <acceptors>
         <acceptor name="in-vm">vm://0</acceptor>
      </acceptors>

      <security-settings>
         <security-setting match="#">
            <permission type="createAddress" roles="guest"/>
            <permission type="createDurableQueue" roles="guest"/>
            <permission type="deleteDurableQueue" roles="guest"/>
            <permission type="createNonDurableQueue" roles="guest"/>
            <permission type="deleteNonDurableQueue" roles="guest"/>
            <permission type="consume" roles="guest"/>
            <permission type="send" roles="guest"/>
         </security-setting>
      </security-settings>
   </core>
</configuration>

1 Ответ

1 голос
/ 17 июня 2020

Документация , которую вы процитировали, фактически охватывает 2 различных способа встраивания экземпляра ActiveMQ Artemis. Первый способ использует broker.xml в вашем пути к классам. Второй способ просто использует конфигурационный API (т.е. programmati c конфигурация без XML config).

ActiveMQ Artemis поставляется с множеством примеров в каталоге examples, демонстрирующих все виды способы настройки брокера через broker.xml. Есть даже 2 примера, демонстрирующих два разных способа встраивания брокера, как описано в документации. Посмотрите пример в examples/features/standard/embedded-simple, чтобы продемонстрировать, как встроить брокера и использовать broker.xml в пути к классам для настройки. Посмотрите пример в examples/features/standard/embedded, чтобы продемонстрировать, как встроить брокера и настроить его программно.

...