如何嵌入经纪人?缺少 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
中的示例,了解如何嵌入代理并以编程方式配置它。
目前我正在写一个 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
中的示例,了解如何嵌入代理并以编程方式配置它。