前提

之前在源码阅读环境搭建文章中写过我遇到的一个问题迟迟没有解决,也一直困扰着我。问题如下,在启动的时候解决掉其他异常和报错后,最后剩下这个错误一直解决不了:

[2018-08-01T09:44:27,370][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [] fatal error in thread [main], exiting
java.lang.NoClassDefFoundError: org/elasticsearch/plugins/ExtendedPluginsClassLoader
at org.elasticsearch.plugins.PluginsService.loadBundle(PluginsService.java:632) ~[main/:?]
at org.elasticsearch.plugins.PluginsService.loadBundles(PluginsService.java:557) ~[main/:?]
at org.elasticsearch.plugins.PluginsService.<init>(PluginsService.java:162) ~[main/:?]
at org.elasticsearch.node.Node.<init>(Node.java:311) ~[main/:?]
at org.elasticsearch.node.Node.<init>(Node.java:252) ~[main/:?]
at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:213) ~[main/:?]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:213) ~[main/:?]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[main/:?]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[main/:?]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[main/:?]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[main/:?]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[main/:?]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[main/:?]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[main/:?]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[main/:?]
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.plugins.ExtendedPluginsClassLoader
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:499) ~[?:?]
... 15 more

网上的解决办法也试了很多遍,包括自己也在 GitHub issue 提问了,也没能解决。然后后面自己分享文章在掘金也发现有人和我有同样的问题。

下面讲讲另一种可以让你继续看源码的方法。

远程 Debug

前提条件是你之前已经把项目导入进 IDEA 了,如果你还没了解,请看之前的文章,这里不重复了。

启动一个实例

在你 git 拉取下的代码,切换你要阅读的分支代码后,执行下面这条命令启动一个 debug 的实例:

./gradlew run --debug-jvm

启动等会后,就可以看到启动好后的端口号为 8000 了。

配置 IDEA

新建一个远程的 debug:

配置如下图:

接下来点击 OK 就好了。

然后点击下面的 debug 图标:

启动后如下:

这时就可以发现是可以把整个流程全启动了,也不会报什么错误!

流程全启动后,你会发现终端的日志都打印出来了(注意:这时不是打印在你的 IDEA 控制台)

总结

遇到问题,多思考,多搜索,多想办法解决!这样才能够不断的提升你解决问题的能力!

最后

转载请务必注明文章出处为:

http://www.54tianzhisheng.cn/2018/08/14/idea-remote-debug-elasticsearch/

相关文章

1、渣渣菜鸡为什么要看 ElasticSearch 源码?

2、渣渣菜鸡的 ElasticSearch 源码解析 —— 环境搭建

3、渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(上)

4、渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(下)

5、Elasticsearch 系列文章(一):Elasticsearch 默认分词器和中分分词器之间的比较及使用方法

6、Elasticsearch 系列文章(二):全文搜索引擎 Elasticsearch 集群搭建入门教程

7、Elasticsearch 系列文章(三):ElasticSearch 集群监控

8、Elasticsearch 系列文章(四):ElasticSearch 单个节点监控

9、Elasticsearch 系列文章(五):ELK 实时日志分析平台环境搭建

10、教你如何在 IDEA 远程 Debug ElasticSearch

教你如何在 IDEA 远程 Debug ElasticSearch的更多相关文章

  1. tomcat 远程debug配置,教你远程调试代码,解决线上故障

      IDEA远程DEBUG Tomcat很简单,配置如下: 1.修改tomcat服务器配置 打开tomcat/bin/catalina.sh 在空白处添加如下参数 CATALINA_OPTS=&quo ...

  2. 一步一步教你如何在linux下配置apache+tomcat(转)

    一步一步教你如何在linux下配置apache+tomcat   一.安装前准备. 1.   所有组件都安装到/usr/local/e789目录下 2.   解压缩命令:tar —vxzf 文件名(. ...

  3. 设置tomcat远程debug

    查看端口占用情况命令: netstat -tunlp |grep 8000 tomcat 启动远程debug: startup.sh 中的最后一行 exec "$PRGDIR"/& ...

  4. Tomcat配置内存和远程debug端口

    一.配置内存 在/tomcat/bin/catalina.sh 中添加: JAVA_OPTS='-server -Xms2048m -Xmx2048m -XX:NewSize=768m -XX:Max ...

  5. 【Java远程debug】

    转自 http://blog.csdn.net/hongchangfirst/article/details/44191925 一.远程debug原理 Java远程调试的原理是两个JVM之间通过deb ...

  6. 远程debug调试java代码

    远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...

  7. 如何在Chrome下Debug Mocha的测试

    简介 经过前两篇文章的介绍,相信读者对Mocha应该有一定的认知了,本文重点讲述如何在Chrome下Debug Mocha Test, 方便你在测试fail的时候troubleshooting. 关键 ...

  8. IntelliJ IDEA 15.0.2远程debug tomcat

    背景 在最近的java项目中使用了linux环境下编译的so文件,所以无法在window环境下debug,故此有了这篇文章 环境 jdk:jdk-8u101-linux-x64 os:CentOS r ...

  9. eclipse远程debug

    由于一般比较正规项目,都会有好几个版本,有时候在测试版本的时候,一切都好好的,然后提交到其他版本之后会有各种各样的问题,这个时候如果不能快速准确的定位到问题,那么我们就需要用 eclipse远程deb ...

随机推荐

  1. OpenCV——PS滤镜算法之 球面化 (凹陷效果)

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  2. dd备份文件系统

    1.实现dd的备份: 使用gzip压缩: dd if=/dev/hdb | gzip > /local/path/image.gz 说明:/dev/hdb 是硬盘整盘.对不同的硬盘,可能是 /d ...

  3. 集训Day10

    果然颓的不像话 bzoj3680 gty又虐了一场比赛,被虐的蒟蒻们决定吊打gty.gty见大势不好机智的分出了n个分身,但还是被人多势众的蒟蒻抓住了.蒟蒻们将n个gty吊在n根绳子上,每根绳子穿过天 ...

  4. LuoguP1419 寻找段落(二分 单调队列

    题目描述 给定一个长度为n的序列a_i,定义a[i]为第i个元素的价值.现在需要找出序列中最有价值的“段落”.段落的定义是长度在[S,T]之间的连续序列.最有价值段落是指平均值最大的段落, 段落的平均 ...

  5. CodeForces - 123E Maze

    http://codeforces.com/problemset/problem/123/E 题目翻译:(翻译来自: http://www.cogs.pw/cogs/problem/problem.p ...

  6. Oracle字符串截断

    字段.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串解释:string 元字符串, start_position 开始位置(从0开始), leng ...

  7. DTP模型之一:(XA协议之三)MySQL数据库分布式事务XA优缺点与改进方案

    1 MySQL 外部XA分析 1.1 作用分析 MySQL数据库外部XA可以用在分布式数据库代理层,实现对MySQL数据库的分布式事务支持,例如开源的代理工具:ameoba[4],网易的DDB,淘宝的 ...

  8. DCloud-HTML5+:barcode

    ylbtech-DCloud:barcode&camera 1.返回顶部 1. http://www.html5plus.org/doc/zh_cn/barcode.html 2. Barco ...

  9. [poj1741]Tree(点分治+容斥原理)

    题意:求树中点对距离<=k的无序点对个数. 解题关键:树上点分治,这个分治并没有传统分治的合并过程,只是分成各个小问题,并将各个小问题的答案相加即可,也就是每层的复杂度并不在合并的过程,是在每层 ...

  10. OpenType字体与TrueType字体的区别

    TrueType采用几何学中二次B样条曲线及直线来描述字体的外形轮廓,其特点是:TrueType既可以作打印字体,又可以用作屏幕显示:由于它是由指令对字形进行描述,因此它与分辨率无关,输出时总是按照打 ...