如何嵌入经纪人?缺少broker.xml

时间:2020-06-17 14:10:22

标签: java activemq-artemis

当前,我正在编写一个类,该类将启动和配置嵌入式JMS服务器,然后在生产者和消费者之间进行调解。

我找到了这个reference,它说它需要一个broker.xml,但是没有提供任何示例。有人可以告诉我需要在文件中添加什么内容吗。

还有:我想象中的启动BrokerServer是否可行?

编辑:

现在我使用此代码:

...

        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 个答案:

答案 0 :(得分:1)

您引用的

The documentation实际上涵盖了两种嵌入ActiveMQ Artemis实例的方式。第一种方法是在类路径上使用broker.xml。第二种方法仅使用配置API(即不带XML配置的程序化配置)。

ActiveMQ Artemis在examples目录中附带许多示例,演示了通过broker.xml配置代理的各种方式。甚至还有两个示例,展示了文档中讨论的两种嵌入经纪人的不同方法。查看examples/features/standard/embedded-simple中的示例,以演示如何嵌入代理并在类路径上使用broker.xml进行配置。查看examples/features/standard/embedded中的示例,以演示如何嵌入代理并以编程方式对其进行配置。