将 API 从 mule 3 迁移到 mule 4 时遇到问题

Facing problem while migrating API from mule 3 to mule 4

就我而言,我正在从 Mule 3 迁移到 Mule 4。

我对从 Mule 3 手动迁移到 Mule 4 有一些疑问。

  1. 如何在Mule 4中使用表达式组件

  2. 还有其他方法可以使用会话变量吗?

  3. 在 Mule 3 中,我使用了一个表达式组件来 return Java 编码我的逻辑。我想在 Mule 4.

    中重用 Java 代码
  4. Mule 4 不支持 message enricher 组件。

  5. Mule 4 不支持 transformers 例如 DOM to XML, XML to String, 等等上。

请帮助我。

迁移指南中已经解释了几个问题。

  1. How to use the expression component in Mule 4?

在 Mule 4 中,表达式语言是 DataWeave 2。您应该了解 DataWeave 并阅读 migration guide from MEL to DataWeave

  1. Are there any other ways to use session variables?

没有。迁移指南中提到了这一点 Migrating Core Components:“Session 变量已被删除。用户必须明确地通过 headers 跨越传输边界。”

  1. In Mule 3, I used an expression component to return Java code to my logic. I'd like to reuse that Java code in Mule 4.

你可以打电话给Java static methods directly from DataWeave。您还可以使用 Java 模块执行任何 Java 方法,并将输出存储在一个变量中,以便在 DataWeave 脚本中使用。

此外,您可以使用 Mule SDK.

创建自定义函数以添加到 DataWeave

请注意,在 Mule 4 中,您不应在 Java 代码中使用任何 Mule API。

一般来说,在尝试调用 Java 代码之前,先尝试查看是否可以使用纯 DataWeave 功能。

  1. The message enricher component is not supported in Mule 4.

不需要浓缩剂。 Mule 4 可以在任何操作中使用 target variables。迁移指南中提到了这一点。

  1. Mule 4 does not support transformers such as DOM to XML, XML to String, and so on.

没错。你应该使用 DataWeave Transformations instead of transformers。迁移指南中提到的另一个主题。