【ActiveMQ】Failed to start Apache ActiveMQ (localhost, ID_XXX)

112 阅读1分钟

问题描述

在尝试使用"bin\win64\activemq.bat"启动apache-activemq-5.18.2时,出现了以下错误:

jvm 1    | ERROR | Failed to start Apache ActiveMQ (localhost, ID:)
jvm 1    | java.io.IOException: Transport Connector could not be registered in JMX: java.io.IOException: Failed to bind to server socket: mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600 due to: java.net.BindException: Address already in use: bind

原因分析

错误原因是由于ActiveMQ无法将mqtt://0.0.0.0:1883端口绑定,因为该端口已经被其他进程占用。但是在命令行中输入以下命令并没有返回结果:

netstat -ano | findstr 1883

解决方案

解决方法是修改conf\activemq.xml文件,找到以下部分:

<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

将端口号由1883改为18833:

<transportConnector name="mqtt" uri="mqtt://0.0.0.0:18833?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

保存文件并重新启动ActiveMQ,启动成功后将会看到以下信息:

jvm 1    |  INFO | ActiveMQ WebConsole available at http://127.0.0.1:8161/
jvm 1    |  INFO | ActiveMQ Jolokia REST API available at http://127.0.0.1:8161/api/jolokia/

经过修改端口号重新启动后,ActiveMQ启动成功。