问题原因可能是使用了异步处理程序,使得在断点停止时,消息中的Body或Header尚未准备好。为了解决此问题,可以在路由的开始和终止处添加一个日志,记录消息中的Header和Body。这样,即使在断点处看不到它们,你仍然可以检查它们的值。
以下是在route开始和结束处添加日志的示例代码:
from("direct:start")
.log("Header: ${header.myHeader}")
.log("Body: ${body}")
.delay(1000)
.log("Header: ${header.myHeader}")
.log("Body: ${body}")
.to("direct:end");
from("direct:end")
.log("Header: ${header.myHeader}")
.log("Body: ${body}");
在这个例子中,当消息从“direct:start”路由到“direct:end”时,Header和Body的值会被记录下来,并在日志中打印出来。注意,我们使用了一个延迟处理程序来模拟一个异步处理程序。