当前位置: 首页 > 知识库问答 >
问题:

Apache Camel和hawt.io调试:正文/头在断点处不可见

山越
2023-03-14

我目前正在与Apache Camel and hawt合作。io用于监视和调试我的骆驼路线。即使文档中隐藏了一些重要信息,这也能很好地工作。例如,我花了一点时间才打开调试。

但是,如果我设置了一个断点,消息处理在路由中的该点停止,那么我在该点看不到任何Camel交换的“主体”或“头”。我试过各种设置:

  • 在驼峰上下文上启用跟踪/积压跟踪
  • 在路由上启用跟踪/积压跟踪
  • 调整了MBean“BacklogDebugger”和“BacklogTracer”上的设置。

“跟踪”选项卡上的跟踪工作得很好:如果我在“跟踪”标签中激活跟踪,我可以看到消息通过路由的所有节点的流动。

只有在断点处停止时,才不显示正文和标题。

已编辑:在涉及其他方面的一些更改(比如为大多数路由节点分配一个ID)后,调试工作包括显示正文和标题。我不知道是什么改变了它。

并且同时我的应用程序属性"camel.main.debugging=true"在启动时失败

Error binding property (camel.main.debugging=true) with name: debugging on bean: org.apache.camel.main.MainConfigurationProperties

我必须在上下文中启用调试,如下所示:

getContext().setDebugging(true);

以下是一些信息:

  • 我没有使用任何特殊的框架:普通的旧Java,我在其中启动Camel-Main的Main方法。
  • 阿帕奇骆驼:3.14.1
  • 乔洛凯特工:1.7.1
  • hawt.io:2.14.5
  • 交易所体型:多姆斯

我的一条路线:

getCamelContext().setBacklogTracing(true);

from(rabbitMqFactory.queueConnect("tso11", "tso11-to-nms", "username"))
  .routeGroup("Workflow")
  .routeId("Workflow-to-NMS|Map-TSO11-to-NMS42")
  .routeDescription("Mapping of TSO11 Message to NMS42")
  .convertBodyTo(DOMSource.class)
  .log("Message for '$simple{header:tenant}' received")
  .process(tso11ToNmsMappingProcessor)
  .to("xslt:xslt/tso11-to-nms42.xslt")
  .to("direct:send");

这是我目前的房产:

camel.main.name=TSO11
camel.main.jmxEnabled=true
camel.main.debugging=true
camel.main.backlogTracing=true
camel.main.lightweight=false
camel.main.tracing=false
camel.main.useBreadcrumb=true

有什么想法吗?有什么好的留档提示吗?

我有一些更不重要的问题,但我将为这些问题打开另一个问题。

带着善意的回忆伯特

最后是调试选项卡(带有空正文)和跟踪选项卡(带有正文内容)的屏幕截图:

共有1个答案

司空赞
2023-03-14

我找到了我问题的原因:

我使用骆驼3.15.0这是目前不支持的骆驼插件的hawt.io.当使用最新的3.14. x它的工作就像一个魅力:-)

希望骆驼插件的维护者会在不久的将来改进它。我愿意贡献,但我不愿意。io开发者信息无法访问,我无法理解如何运行hawt。io来自本地的源代码……特别是如何包含camel插件,它在一个单独的github项目中。

 类似资料:
  • 问题内容: 我正在尝试拍摄JUnit。在源代码中,我在两个位置设置了断点:1)在初始化静态成员的行中2)在一个测试用例的第一行中。 调试器在静态字段初始化行中停止。但这并不会在测试用例中停止。无论我在测试用例中的何处设置断点,调试器都不会在那里停下来。我肯定知道测试用例已执行,因为我可以看到添加的日志消息出现在日志中。 任何帮助将不胜感激。 我正在使用Eclipse Galileo和JUnit4启

  • 主要内容:涉及的步骤,了解断点运行Python代码包含两种模式:运行脚本和调试脚本。 本章重点介绍如何使用PyCharm来调试Python脚本。 涉及的步骤 调试Python项目的步骤如下所述 - 第1步 从下面的屏幕截图所示开始调试Python项目 - 第2步 现在,Windows防火墙要求调试Python项目的权限,因为该过程涉及逐行编译。 第3步 调试控制台在PyCharm编辑器中创建,如下所示,它逐行执行输出。 运行按

  • 运行python代码包括两种模式:运行脚本和调试脚本。 本章重点介绍如何使用PyCharm调试Python脚本。 步骤 (Steps Involved) 调试Python项目的步骤如下所述 - Step 1 从调试Python项目开始,如下面的屏幕截图所示 - Step 2 现在,Windows防火墙要求调试Python项目的权限,因为该过程涉及逐行编译。 Step 3 调试控制台在PyCharm

  • Swoole 开发组成员 @codinghuang 开发了一个新的调试扩展,名为 Yasd ,另一个 Swoole 调试器。 众所周知,xdebug 原生对 Swoole 并不兼容,并且代码难以维护,所以才有了 Yasd! Yasd 完全兼容 xdebug 协议,你可以在任何支持 xdebug 的 IDE 中以同样的方式使用 Yasd 进行单步调试。 Yasd 地址:https://github.

  • https://github.com/discord-bot-tutorial/community-discord-bot在这个特定的项目中,vscode的C#调试器不会停在断点上。我尝试用 创建一个新项目,该项目工作正常,我还用我在Visual Studio Community 2017中创建的另一个项目进行了尝试,该项目也完全正常工作。

  • 我在Netbeans上运行Glassfish,但是调试器不能在断点处停止。 我用“调试模式”启动Glassfish,将调试器附加到9009端口,就像我在日志文件中看到的那样。我在托管bean代码中的一行上设置了一个断点,右键单击项目并选择“debug”。 但是调试器从未停止,我找不到任何错误。即使我在其他行上设置断点,也不起作用。我还需要其他配置吗? 这里是我的环境。 JDK 1.8.0_60 N