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

How to embed broker? Missing broker.xml

目前我正在写一个 class 它将启动和配置一个嵌入式 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

尽管如此,文件就在 class 旁边。文件必须在哪里?

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>

The documentation 您引用的内容实际上涵盖了嵌入 ActiveMQ Artemis 实例的两种不同方式。第一种方法在类路径中使用 broker.xml。第二种方式只使用配置 API(即没有 XML 配置的编程配置)。

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