Law*_*ney 6 activemq-classic spring-boot
我有一个 Spring Boot 应用程序,可以自动启动 ActiveMQ 代理 (vm://localhost):它可以工作,我可以成功发送和接收消息。
我希望 Spring Boot 也启动ActiveMQ Web 控制台,例如http://localhost:8161/admin(就像它可以与 H2 数据库控制台一样)。
问题:如何让 Spring Boot 应用程序启动 ActiveMQ Web 控制台?
奖励积分:仅适用于特定的 Spring @profile?
提前致谢
注意:我已经查看了如何在 ActiveMq 嵌入式代理上启用 Web 控制台,但这需要使用我不想/无法使用的 hawtio。
Web 控制台是一个 Web 应用程序,可以在任何 Servlet 容器(例如 Tomcat)中下载和启动。
以下是一些步骤。
在 activemq.xml 中启用 ActiveMQ 以供 JMX 使用。也就是说 - 在代理标签中启用它:<broker useJmx="true".. 和
并确保createConnector是true.
<managementContext>
<managementContext createConnector="true"/>
</managementContext>
Run Code Online (Sandbox Code Playgroud)
从 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
Run Code Online (Sandbox Code Playgroud)
如果您没有 Tomcat(或 servlet 容器)并且更喜欢使用“java -jar ..”运行 Spring boot 应用程序 - 您可以使用 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
Run Code Online (Sandbox Code Playgroud)
管理控制台将托管在本地主机的 8085 端口上。这只是一个入门。你可能想添加故障转移、安全性等。YMMV
| 归档时间: |
|
| 查看次数: |
8899 次 |
| 最近记录: |