Apache Camel 和 hawt.io 调试:Body/Header 在断点处不可见

Apache Camel and hawt.io debugging: Body/Header not visible at breakpoint

我目前正在使用 Apache Camelhawt.io 来监控和调试我的 Camel 路由。这非常有效,即使一些重要信息在某种程度上隐藏在文档中。例如,我花了一点时间才打开调试。

但是,如果我设置 断点 消息处理在路由的那个点停止 ,我 那时看不到我的 Camel 交换的任何“body”或“headers”。我尝试了各种设置:

“跟踪”选项卡上的跟踪效果很好:如果我在“跟踪”选项卡中激活跟踪,我可以看到我的消息流经路线。

只有停在断点处才不会显示body和header。


已编辑:在对其他方面进行一些更改(例如为大多数路由节点分配 ID)后,调试工作包括 body 和 [=99= 的显示]s。我不知道是什么改变让它起作用了。

同时我的应用程序 属性“camel.main.debugging=true”启动失败

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

我不得不在这样的上下文中启用调试:

getContext().setDebugging(true);

这里有一些信息:

我的路线之一:

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

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

我还有一些不太重要的问题,但我会为这些打开另一个问题。

谨记 伯特


最后是调试选项卡(空body)和跟踪选项卡(body 内容):

我找到问题的原因:

我使用的是hawt.io的camel插件目前不支持的Camel 3.15.0。 使用最新的 3.14.x 时,它就像一个魅力:-)

希望在不久的将来还有camel插件的维护者改进它。我愿意做出贡献,但无法访问 hawt.io 开发人员信息,而且我无法理解如何从本地源代码 运行 hawt.io ....尤其是如何包含 camel 插件,它在一个单独的 github 项目中。