报错:“Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging."/>
elasticsearch连接拒绝 , 查看日志报错:“Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.
-
情况描述:
-
寻找原因
首先想到的是,命令行查看es日志 $ docker logs elasticsearch,定位到报错的地方如下
-
报错原因:缺少 commons-logging-1.2.jar 包(版本不一定要是1.2)
-
解决问题的前置条件 ---- 环境配置 (可能我们的环境配置不太一样,所以先说明一下我出现这种问题的环境是什么样的)
在 Centos7下利用docker拉取镜像:
$ docker pull elasticsearch:7.4.2
安装命令为:
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
更换目录到 $ cd /mydata/elasticsearch/plugins(上图挂载目录) ,有如下发现
可以看到在 ik 目录下有各种 jar包, 因此猜想可以将缺少的jar包放置此位置。
ps: 查找各种解决方法,基本上都说 缺少maven 依赖,可是我根本没有使用springboot。因此导入依赖不适合我的情况。
-
解决过程
1, 下载缺少的 commons-logging-1.2.jar 包,
2, 利用xftp 将主机 jar文件传输到 虚拟机的 ik 目录(此目录与容器相关目录挂载)下,
3. 重启 elasticsearch , $ docker restart elasticsearch, 再次查看 日志 无报错, 网页输入 192.168.56.10: 9200,(即虚拟机地址:elasticsearch端口号)可正常访问, 利用postman也能成功发送请求
ps: 可能我的情况与大家不同,但通过这次我深有感触,认真分析日志报错,定位报错原因,只要找到原因,错误总能解决的。 我就是一开始没有认真分析,所以浪费了很长时间去解决。
更多推荐
elasticsearch连接拒绝 , 查看日志报错:“Caused by: java.lang.ClassNotFoundException: org.apa
发布评论