第 25 章 编辑运行的路由
概述 复制链接链接已复制到粘贴板!
您可以在不更改项目的路由上下文的情况下试验对正在运行的路由的更改。
要做到这一点:
在 JMX Navigator 视图中,在正在运行的路由上下文中启用 Edit Routes 选项。
这会在路由编辑器中打开 it-memory model of itsandboxed- Remote CamelContext:<camelContextId > 方式。
在路由编辑器中,对路由上下文的内存模型进行更改。同时,您可以在相关节点上设置断点以使用 Camel 调试器及其所有功能。
您可以编辑内存模型来添加、删除或重新排列节点;用于添加或删除现有节点的属性;以及修改现有节点上设置的属性值。您必须保存对内存模型的更改,以更新正在运行的上下文,并在设置了断点时看到 Debug 透视图的结果。
- 在 JMX Navigator 视图中,丢弃运行路由上下文上的消息,或者等待消息从计时器、ActiveMQ、文件或其他持续输入节点到达。
- 在 Debug 透视图中,评估结果并使用 Camel 调试器深入了解您的路由上下文。
修改正在运行的路由并评估结果 复制链接链接已复制到粘贴板!
- 在 JMX Navigator 视图中,选择包含您要编辑的路由上下文。
右键单击选定的路由上下文打开上下文菜单,然后选择 Edit Routes。
路由编辑器会打开路由上下文的内存中模型,Remote CamelContext:<contextId& gt;,并在生产环境中显示所有路由,例如:
注意<contextId
> 是项目路由上下文 . .xml
文件中的camelContext
元素的 ID。在本例中,基于 FuseContent Based Router 内置模板,ID 为 cbr-example-context
。-
编辑 第 2 章 在路由编辑器中编辑路由上下文 中描述的路由,然后选择 File
Save 以保存您对内存模型所做的更改并更新正在运行的路由上下文。 - 如 第 13 章 设置断点 所述,在相关节点上设置断点。
在 JMX Navigator 视图中,在正在运行的路由上下文输入节点上丢弃消息。
如果您的项目不包含测试信息,您可以创建它们,如 第 22.1 节 “创建用于路由追踪的测试消息” 所述。
- 单击 Yes 以确认切换到 Debug 透视图。
在 Camel 调试器中,通过断点(请参阅 第 14 章 运行 Camel Debugger)检查您生成的结果。
Camel 调试器在 Edit Routes 模式中的行为与普通的调试模式相同,因此您可以在传递路由上下文时使用 Camel 调试器的功能。
注意当消息到达路由上下文的末尾时,会暂停调试器。要继续调试,请切回到 Fuse 集成 透视图,并在 JMX Navigator 视图中的输入节点上丢弃另一条消息。每次这样做时,工具都会要求您确认切换到 Debug 透视图。
注意在路由编辑会话中,可能会丢失与正在运行的路由上下文的连接。如果发生这种情况,在 JMX Navigator 视图中,您会看到类似如下的内容: Local Processes
maven[xxxx][Disconnected]。要继续会话,您必须重新连接到正在运行的路由上下文,在 JMX Navigator 视图中选择它,然后重新选择 编辑路由。
终止路由编辑会话 复制链接链接已复制到粘贴板!
-
在 Debug 透视图的 Debug 视图中,选择 Remote Camel Debug - camelContext--<contextId>--xxxxxxxxxxxxxxxxxx.xml [Remote Camel Context] 线程,然后点菜单栏中的
终止调试会话。
-
在 Console 视图的菜单栏中,点
终止路由上下文。
-
如果要清除控制台输出,请在 Console 视图的菜单栏中点
。
-
切换到 Fuse Integration 视角,在路由编辑器中点 Remote CamelContext:<contextId& gt; 标签页来关闭路由上下文文件的内存中模型。