摘要:前提之前在源码阅读环境搭建文章中写过我遇到的一个问题迟迟没有解决,也一直困扰着我。然后后面自己分享文章在掘金也发现有人和我有同样的问题。下面讲讲另一种可以让你继续看源码的方法。配置新建一个远程的配置如下图接下来点击就好了。
前提
之前在源码阅读环境搭建文章中写过我遇到的一个问题迟迟没有解决,也一直困扰着我。问题如下,在启动的时候解决掉其他异常和报错后,最后剩下这个错误一直解决不了:
[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.(PluginsService.java:162) ~[main/:?] at org.elasticsearch.node.Node. (Node.java:311) ~[main/:?] at org.elasticsearch.node.Node. (Node.java:252) ~[main/:?] at org.elasticsearch.bootstrap.Bootstrap$5. (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
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76924.html
摘要:注意这个版本需要和下面的源码版本一致下载源码从上下载相应版本的源代码,这里建议用,这样的话后面你可以随意切换到的其他版本去。我们看下有哪些版本的找到了目前源码版本最新的版本的稳定版为切换到该版本于是就可以切换到该稳定版本了。 关注我 showImg(https://segmentfault.com/img/remote/1460000012730965?w=258&h=258); 转载...
阅读 901·2021-11-22 12:09
阅读 3685·2021-09-27 13:36
阅读 1374·2021-08-20 09:37
阅读 3913·2019-12-27 12:22
阅读 2327·2019-08-30 15:55
阅读 2295·2019-08-30 13:16
阅读 2797·2019-08-26 17:06
阅读 3417·2019-08-23 18:32