Spring Boot - 启动时启动ActiveMQ Web控制台

时间:2017-05-22 08:40:18

标签: spring-boot activemq

我有一个Spring Boot应用程序可以自动启动一个ActiveMQ代理(vm:// localhost):它可以工作,我可以成功发送和接收消息。

我希望Spring Boot能够启动 ActiveMQ Web控制台,例如http://localhost:8161/admin(与H2数据库控制台非常相似)。

问题:如何让Spring Boot应用启动ActiveMQ Web控制台?

奖励积分:仅适用于特定的Spring @profile?

提前致谢

注意:我已经审核了How to enable web console on ActiveMq embedded broker,但这需要使用我不想/不能使用的hawtio。

1 个答案:

答案 0 :(得分:2)

Web控制台是一个Web应用程序,可以在任何servlet容器(如Tomcat)中下载和启动。

以下是一些步骤。

在activemq.xml中启用ActiveMQ for JMX。也就是说 - 在代理商代码中启用它:<broker useJmx="true" ..和

并确保createConnectortrue

<managementContext>
        <managementContext createConnector="true"/>
</managementContext>

从Maven下载.war。最好使用与经纪人相同的版本。

http://repo1.maven.org/maven2/org/apache/activemq/activemq-web-console/5.14.5/

然后设置以下JVM属性(JAVA_OPTS)。请注意,如果您更改了URL和端口,它们可能会有所不同。

-Dwebconsole.type=properties 
-Dwebconsole.jms.url=tcp://localhost:61616 
-Dwebconsole.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi

如果您没有Tomcat(或servlet容器)并且更喜欢使用&#34; java -jar运行Spring启动应用程序..&#34; - 您可以使用Web控制台执行相同的操作。

以下示例使用此应用:https://github.com/jsimone/webapp-runner

不得不添加jstl jar,因为它没有与webapp-runner捆绑在一起。

java -Dwebconsole.type=properties -Dwebconsole.jms.url=tcp://localhost:61616 -Dwebconsole.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi -cp jstl-1.2.jar:webapp-runner.jar webapp.runner.launch --port 8085 activemq-web-console-5.14.5.war 

管理控制台将托管在端口8085的localhost上。这只是一个启动器。您可能想要添加故障转移,安全等等.YMMV