第 25 章 编辑运行的路由


概述

您可以试验对正在运行的路由的更改,而无需更改项目的路由上下文。

要做到这一点:

  • JMX Navigator 视图中,在运行的路由上下文中启用 Edit Routes 选项。

    这会打开一个内存模型,它对 route 编辑器进行一个 in-memory model of the Remote CamelContext:<camelContextId > HEKETI-wagonin。

  • 在路由编辑器中,对路由上下文的内存模型进行更改。同时,您可以在相关节点上设置断点,以使用 Camel 调试器及其所有功能。

    您可以编辑内存模型以添加、删除或重新排列节点;添加或删除现有节点的属性;以及修改现有节点上设置的属性值。您必须保存对内存模型所做的更改,以更新运行的上下文,并在设置了断点时查看 Debug 视角。

  • JMX Navigator 视图中,在运行的路由上下文中丢弃消息,或者等待消息从计时器、ActiveMQ、文件或其他持续输入节点到达。
  • Debug 透视图中,评估结果并使用 Camel 调试器深入了解路由上下文。

修改正在运行的路由并评估结果

  1. JMX Navigator 视图中,选择包含您要编辑的路由上下文。
  2. 右键单击所选路由上下文以打开上下文菜单,然后选择 Edit Routes

    路由编辑器会打开路由上下文的内存中模型 Remote CamelContext:<contextId& gt;,并显示了上下文中的所有路由,例如:

    CanvasPalette
    注意

    <contextId > 是项目路由上下文 .xml 文件中的 camelContext 元素的 ID。在本例中,基于 Fuse Content Based Router 内置模板,ID 是 cbr-example-context

  3. 按照 第 2 章 在路由编辑器中编辑路由上下文 所述编辑路由,然后选择 File Save 以保存您对内存模型所做的更改,并更新正在运行的路由上下文。
  4. 在相关节点上设置断点,如 第 13 章 设置 Breakpoints 所述。
  5. JMX Navigator 视图中,丢弃正在运行的路由上下文输入节点上的消息。

    如果您的项目不包含测试信息,您可以创建它们,如 第 22.1 节 “为路由追踪创建测试消息” 所述。

  6. 单击 Yes 以确认切换到 Debug 视角。
  7. 在 Camel debugger 中,像常规一样,逐步浏览断点的消息(请参阅 第 14 章 运行 Camel Debugger),以查看您生成的更改的结果。

    Camel debugger 在 Edit Routes 模式中的行为与通常调试模式相同,因此您可以在消息传输路由上下文时使用任何 Camel 调试器的功能。

    注意

    当消息到达路由上下文结束时,调试器将暂停。要继续调试,请切换回 Fuse Integration 视角,并在 JMX Navigator 视图中的输入节点上丢弃另一个消息。每次这样做时,工具会要求您确认切换到 Debug 视角。

    注意

    在路由编辑会话过程中,可能会丢失与正在运行的路由上下文的连接。如果发生这种情况,则在 JMX Navigator 视图中,您会看到如下内容: Local Process maven[xxxx][Disconnected]。要继续会话,您必须重新连接到正在运行的路由上下文,在 JMX Navigator 视图中选择它,然后重新选择 Edit Routes

终止路由编辑会话

  1. Debug 视角的 Debug 视图中,选择 Remote Camel Debug - camelContext--<contextId>--xxxxxxxxxxxxxxxxxx.xml [Remote Camel Context] thread,然后点击菜单栏上的 Terminate button 来终止调试会话。
  2. Console 视图的菜单栏中,点 Terminate button 终止路由上下文。
  3. 如果要清除控制台输出,请点击 Console 视图的菜单栏中的 clear co
  4. 切换到 Fuse Integration 视角,在路由编辑器中点 Remote CamelContext:<contextId&gt; 标签页中的 close 来关闭路由上下文文件的内存中模型。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.