今天遇到个问题,在云服务中安装activemq,解压后执行./activemq start命令,访问activemq的页面无反应
同时,在data中的activemq.log并没有任何日志输出(最坑的就是这一点,网上查询很多文章,都是通过activemq.log来解决问题,但是我的activemq.log没有一行日志,详细见下面配图)。
找问题过程如下:
1. 通过61616端口查询,发现没有mq进程启动
2. 查询资料,在data/activemq.log中可以看到启动日志,很有可能是因为主机名存在“_”线导致,或者其他端口被占用,具体的原因在activemq.log查看(最坑的就是这一点,网上查询很多文章,都是通过activemq.log来解决问题,但是我的activemq.log没有一行日志,详细见下面配图)。
3. 从官网上重新下载了active5.15的其他版本,依旧是同样的问题,毫无日志。
// 进入mq目录
cd /myactiveMQ/apache-activemq-5.15.11/bin
// 启动mq
./activemq start
// 查看mq进程是否启动
ps -ef | grep activemq
// 查看mq进程是否启动,默认短裤61616
lsof -i:61616
// 到mq的启动日志
cd ../data
cat activemq.log
4. 于是在想是不是jdk版本的问题导致的,如果真的是版本的问题,activemq应该也会在activemq.log里面打印提醒,实在没有办法的情况下,查询了avtivemq适配的jdk版本,如下图,发现 activemq5.15版本以上确实需要jdk1.8,但是activemq并没有任何的报错提示,这可能是activemq的Bug把,果断采用了activemq5.14版本的,果真可以了
6、这时候能看到日志了,具体出现什么错误,在根据日志去解决
如何查看官方发布ActiveMQ依赖JDK版本
以版本 apache-activemq-5.15.0 为例
方法1:查看 release-note
ActiveMQ 5.15.0 Release
Java 8 Required
The minimum Java version has been upgraded to Java 8.
方法2:查看文件 activemq-all-*.jar\META-INF\MANIFEST.MF 属性值 Build-Jdk
Manifest-Version: 1.0
Implementation-Title: ActiveMQ :: All JAR bundle
Implementation-Version: 5.15.0
Archiver-Version: Plexus Archiver
Built-By: cshannon
Specification-Vendor: The Apache Software Foundation
Specification-Title: ActiveMQ :: All JAR bundle
Implementation-Vendor-Id: org.apache.activemq
Implementation-Vendor: The Apache Software Foundation
Main-Class: org.apache.activemq.console.command.ShellCommand
Created-By: Apache Maven 3.5.0
Build-Jdk: 1.8.0_112
Specification-Version: 5.15.0
EOF