ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用IntelliJ IDEA调试Spring WebFlux / Reactor应用程序

2019-11-08 20:29:34  阅读:1815  来源: 互联网

标签:project-reactor intellij-idea spring


我正在使用IntelliJ IDEA创建一个Spring WebFlux / Reactor应用程序. IDEA的调试器显示了许多无用的行,例如MonoDefer,MonoFlatMap等.有没有一种方法可以轻松地跟踪堆栈?

intellij-debug-traces

解决方法:

在异步世界中,不幸的是堆栈跟踪失去了很多意义.在这里,您将看到一个堆栈,其中显示了构成整个反应链的操作符(包括Spring框架在控制器中定义的操作符之上使用的操作符).唯一的问题是它显示了链的触发位置(或“订阅”),因为执行是惰性的,并且这是在运行时可见的唯一路径…

对于正确的错误和堆栈跟踪,可以在链中显式使用.checkpoint()运算符,以捕获有关“程序集”(在代码中声明了运算符链)的信息,以提供一些信息.更多上下文.然后将其显示为异常堆栈strace的一部分,作为受抑制的异常.

使用IntelliJ的新异步调试器功能对我们来说也有点困难,因为执行模型没有提供一对固定的“调度站点与执行站点”:用于在线程中间交换线程的Scheduler抽象像publishOn和subscribeOn这样的运算符的顺序暗示​​着任意的“执行站点”(任意的ExecutorService,自己的线程池,线程等).

我鼓励您在http://projectreactor.io/docs/core/release/reference/#debugging的官方参考文档中阅读堆栈跟踪和调试信息.

标签:project-reactor,intellij-idea,spring
来源: https://codeday.me/bug/20191108/2010194.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有