当前,我正在编写一个类,该类将启动和配置嵌入式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>
答案 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
中的示例,以演示如何嵌入代理并以编程方式对其进行配置。