如何捕获 Mule foreach 作用域中的异常但保持进程继续进行?

2024-02-01

我是 Mule ESB 的新手。我创建了一个简单的流程,循环遍历订单列表并调用 Magento API 来逐一更新订单状态。我的问题是,如果 foreach 范围内发生任何异常,整个过程就会结束。我尝试使用异常策略来捕获异常,它确实捕获了异常。但如何恢复该过程呢?我通过谷歌搜索没有找到太多信息。也许我在流程上做错了什么。在 Mule 中我们通常如何处理这个问题?

这是我的 xml 流程。

    <flow name="Update_Magento_Order_Status_AU" doc:name="Update_Magento_Order_Status_AU" initialState="started">
    <poll doc:name="Poll">
        <fixed-frequency-scheduler frequency="10" timeUnit="MINUTES"/>
        <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="GET_ORDERS_BY_STATUS_QUERY" queryTimeout="-1" connector-ref="DSEDatabase" doc:name="Get Orders By Status"/>
    </poll>
    <flow-ref name="ProcessOrderStastusUpdate" doc:name="Process Order Status Update"/>
</flow>
<flow name="ProcessOrderStastusUpdate" doc:name="ProcessOrderStastusUpdate">
    <foreach collection="#[payload]" doc:name="For Each">
        <component doc:name="Set Magento Order Status for Update">
            <singleton-object class="com.dse.esb.component.OrderStatusMapperComp">
                <property key="as400OrderStatuses" value="${as400.orderstatuses}"/>
                <property key="magentoOrderStatuses" value="${magento.orderStatuses}"/>
            </singleton-object>
        </component>
        <logger message="About to update Magento Order Status" level="INFO" doc:name="Logger"/>
        <magento:add-order-comment config-ref="Magento" comment="Updated by Mule ESB with AS400 order status: #[payload.TRNSTS]" orderId="#[payload.EPGORDNBR]" status="#[flowVars['magentoOrderStatus']]" doc:name="Update Magento Order Status"/>
    </foreach>
    <choice-exception-strategy doc:name="Choice Exception Strategy">
        <catch-exception-strategy doc:name="default">
            <logger message="Handle default exception" level="INFO" category="==============&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;" doc:name="Logger"/>
        </catch-exception-strategy>
    </choice-exception-strategy>
</flow>

对 for-each 的内容使用私有流,并具有自己的异常策略。异常将在私有流中处理,并且父流应该能够继续。就像是:

<flow name="ProcessOrderStastusUpdate">
   <foreach collection="#[payload]" doc:name="For Each">
      <flow-ref name="privateFlow" />    
   </foreach>
</flow>

<flow name="privateFlow">
   <component doc:name="Set Magento Order Status for Update">
      <singleton-object class="com.dse.esb.component.OrderStatusMapperComp">
             <property key="as400OrderStatuses" value="${as400.orderstatuses}"/>
             <property key="magentoOrderStatuses" value="${magento.orderStatuses}"/>
      </singleton-object>
   </component>
   <logger message="About to update Magento Order Status" level="INFO" doc:name="Logger"/>
   <magento:add-order-comment config-ref="Magento" comment="Updated by Mule ESB with AS400 order status: #[payload.TRNSTS]" orderId="#[payload.EPGORDNBR]" status="#[flowVars['magentoOrderStatus']]" doc:name="Update Magento Order Status"/>


    <choice-exception-strategy doc:name="Choice Exception Strategy">
        <catch-exception-strategy doc:name="default">
            <logger message="Handle default exception" level="INFO" category="==============&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;" doc:name="Logger"/>
        </catch-exception-strategy>
    </choice-exception-strategy>
</flow>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何捕获 Mule foreach 作用域中的异常但保持进程继续进行? 的相关文章

  • 使用 Redis 的 Mule 缓存策略

    我正在寻找一种在两台服务器之间共享缓存的方法 并且正在研究使用 Redis 作为对象存储缓存策略 但在读取存储值时遇到问题 当缓存命中为未命中值时 它会成功存储值 但在检索该值时会抛出错误 所需的对象 属性 muleContext 为 nu
  • Mule 3:控制是否允许执行流

    我目前的情况 我目前有一个 Mule ESB 应用程序 其中包含三个流 这些流处理来自两个不同源的消息 这三个流使用 VM 队列绑定在一起 Flow 1 入站 端点 1 gt 执行消息处理和转换 gt 出站 端点 3 Flow 2 入站 端
  • 使用 Mule 发送格式化邮件

    我正在使用 Mule 发送电子邮件 我需要为发送的文本添加格式 邮件的内容是有效负载 其中包含我在 Java 方法中形成的字符串 并使用表达式转换器发送到流程 我需要向该字符串添加格式 粗体 下划线 颜色 我该怎么做 这是我的流程的摘录
  • 使用 HTTP 端点下载 Mule 文件

    我负责在流程结束时下载文件的 HTTP 端点出现错误 它不断尝试与http 80 而不是传入的 URL 我在这里做错了什么
  • 如何修改 Mule 负载变量?

    使用 Mule 3 3 我得到了一个有效负载 它以 JSON 形式开始 我使用 java util HashMap 将其转换为对象 我可以使用 JDBC 查询很好地访问变量 message payload AddJob variable1
  • 在 mule esb 中从 JSON 中提取数组

    我正在使用 Mule 3 4 CE 并且我有一个通过 HTTP 传输的 JSON 数据 格式如下 People Details Name John Smith Email email protected Details Name Tim S
  • 如何使用 MUnit 在 Mule Flow 中模拟 Java 组件

    我正在尝试使用 MUnit 对我的一个子流程进行单元测试 我需要模拟一个自定义 Java 组件 但我无法这样做 我的子流程如下
  • 如何在启动 mule 时自动运行一次流程?

    我有一个 java 类 它使用种子集合创建一个干净的 MongoDB 数据库 它会自动识别数据库是否丢失并创建它 我想在启动 MuleEsb 时运行它 这样我就不需要在启动 mule 之前记得调用它 我希望将其放入流程中并在 mule 启动
  • ESB 中有效负载的验证

    我有一个 HTTP POST REQUEST 它发送如下有效负载 键1 值1 键2 值2 键3 值3 我能够验证所有值 但每次都必须使用一个组件 在本例中 我使用了验证器 非空字符串 3 次 1 Is there any way that
  • 如何将 Spring 应用程序与 Mule ESB 集成

    我想将我的 spring 3 0 应用程序与 Mule ESB Mule3 集成 并为不同的客户端 Net GWT 等 提供这些服务 为了实现这一点 我是否应该将 Spring 应用程序部署为单独的组件并在 Mule 上定义 Endpoin
  • 从 mule esb 使用 .NET ASMX Web 服务会抛出 CXF 异常:401 Unauthorized

    我在另一台服务器上有一个 NET ASMX Web 服务 并且在另一台服务器上安装了 mule 独立 CE 3 4 我有一个非常简单的流程 需要调用这个 NET Web 服务并传递两个字符串参数
  • 如何在 Mule 中添加一次全局异常处理程序/记录器

    我们想要向 mule 添加几行 XML 配置 并使用一个异常处理程序来记录到 SLF4J 而不是现在记录的位置 stdout 我们如何添加这个 我们不想将此处理程序添加到每个流 50 多个流 加上人们添加流时 他们可能会忘记添加我们的异常处
  • Mule 流程:如何从 XML 文件中删除 BOM 标记

    我已经为 Mule 流程输入了复杂的大型 XML 文件 文件结束点 gt 字节数组到字符串 gt 分割器 gt 我有org xml sax SAXParseException 序言中不允许有内容当我尝试使用 Splitter 组件处理输入文
  • 为什么 Mule 例外策略这么啰嗦?

    在我的 Mule 应用程序中 我已将一些流程配置为使用捕获异常策略来执行一些特殊处理 对于这些情况 我想将错误和原始有效负载弹出到对象存储中 在其他地方 默认的异常策略就很好
  • 是什么导致了这个 Maven/JBehave 错误?

    我有一个生成 Mule 连接器的 Maven 项目 它基本上是一个 shell 因此我开始使用 JBehave 添加一些 BDD 测试 我添加的第一个测试作用很小 public class FakeSteps extends Embedde
  • 为什么 mule json 到 xml 转换器只获取第一个元素?

    我正在尝试使用 json to xml transformer 将 json 消息转换为 xml 但无法找到有关其使用的文档 我不需要对数据进行任何转换 只需将 json 属性转换为 xml 标签即可 当我尝试使用转换器时 我得到的只是 j
  • 如何使用 Mule 请求程序进行 SFTP - 动态文件名和路径

    我正在尝试使用 Mule 请求程序组件进行 SFTP 如何将文件名作为请求参数的一部分给出 这是我的流程
  • 如何捕获 Mule foreach 作用域中的异常但保持进程继续进行?

    我是 Mule ESB 的新手 我创建了一个简单的流程 循环遍历订单列表并调用 Magento API 来逐一更新订单状态 我的问题是 如果 foreach 范围内发生任何异常 整个过程就会结束 我尝试使用异常策略来捕获异常 它确实捕获了异
  • ESB MULE 将参数传递给 java 方法

    我使用MULE版本3 3 0 CE 我想从入站标头获取一些值 然后将其传递给java方法 在java方法中对传递的值进行一些更改 最后我再次将其从java方法传递到出站 而不是将 Java bean 绑定到 Mule API 使用Calla
  • 读取通配符文件名的 Quartz 作业仅获取一个文件

    使用骡子 3 7 如果我的目录中有 5 个扩展名为 csv 的文件 则以下代码仅选取这五个文件之一 如果我删除石英触发器并将其设为普通文件 inbound endpoint 它将拾取所有五个文件 看起来很简单 但并没有按预期工作 Thank

随机推荐

  • CSS 100%高度,然后滚动DIV而不是页面

    好吧 我还没有找到有答案的问题 所以我决定自己做一个 我正在尝试创建 100 流畅的布局 从技术上讲我已经做到了 http stickystudios ca sandbox stickyplanner layout index2 php h
  • Javascript变量替换(CK编辑器)

    如何更换 name city country 具有动态价值 动态值是json格式 我的要求 最初只有用户使用CKEditor创建布局设计 然后用户将上传 CSV 文件 CSV 中的所有数据都将替换 value 这就是这个概念 p This
  • 如何启用 clang-tidy 的“现代化”检查?

    我刚刚安装ClangOnWin https sourceforge net p clangonwin 我正在努力得到clang tidy的 现代化 支票发挥作用 很遗憾 clang tidy似乎不知道他们 clang tidy list c
  • Active Directory:此处是否存在无效字符转义以及如何处理

    我已经构建了一个通过 SSIS 中的 C 脚本组件从活动目录中提取数据的过程 该数据需要加载到 SQL Server 中 我遇到了 DistinguishedName DN 和 CanonicalName CN 包含双引号 和反斜杠 转义字
  • ASP.NET 5 (MVC 6) - 资源本地化

    我花了大约一周的时间试图了解本地化在 ASP NET Core 1 0 中如何工作 我已经测试了很多选项 但我无法使其工作 我已经读过有关该错误的信息视觉工作室 https github com aspnet Localization is
  • 在 MATLAB 中计算组平均值/中位数,其中组 ID 位于单独的列中

    我有一列包含每个参与者的组 ID 有三组 因此该列中的每个数字都是 1 2 或 3 然后我有第二列 其中包含每个参与者的响应分数 我想计算每组内的平均 中位数响应分数 我已经设法通过循环每一行来做到这一点 但我觉得这是一个缓慢且次优的解决方
  • 使用 iphone sharekit 在一篇文章中发布多个 url

    我想使用共享工具包发布如下文本 在 Twitter Facebook 邮件上 Hi 这是分享文字 点击这里做某事 单击此处查看其他内容 Cheers 我有以下代码 IBAction shareOnTwitter id sender SHK
  • 如何区分点击事件和拖放事件?

    我对既可拖动又具有单击事件的元素有疑问 drag mousedown function class click function div class drag class div 当我拖放元素时 单击事件也会被触发 如何预防呢 您也可以同时
  • 获取给定地址的 std::vector 元素的索引

    假设我有一个 std vector 并且通过某种方式获得了第 n 个元素的地址 给定 std vector 的基地址 是否有一种简单的方法 比迭代向量更快 来获取元素出现的索引 假设我确定该元素位于向量中 由于您知道该元素位于向量内 并且向
  • 为 Swagger-UI 添加基本授权

    我目前部署了一个 swagger 项目 但在向其添加一些基本授权时遇到问题 当前 当您单击 尝试一下 时按钮 您需要登录帐户才能访问结果 我有一个帐户 我希望每次有人尝试访问 api 时都会自动使用该帐户 下面是我的项目的index htm
  • 如何在 HTML 中点击时隐藏或显示 div

    我有四个 HTMLdiv我想在单击时显示和隐藏它们如何执行此操作 div class image one img src image imageone png div div class image two img src image im
  • DOMPDF 不支持阿拉伯字符

    任何人都可以帮助我吗 我正在使用 DOMPDF 它运行良好 但不适用于阿拉伯字符 它显示了这些 我尝试使用 在 head 标签中 还 但它不起作用 请在这件事上给予我帮助 提前致谢 在你的 html 中使用下面的样式
  • 在我的 for 循环上进行计算,并希望使用某些函数在没有 for 循环的情况下进行计算

    dec 0 1 data np array 100 200 300 400 500 我有一个像这样的 for 循环 y np zeros len data for i in range len data if i 0 y i 1 0 dec
  • 使用 Moq 模拟数据集

    我正在尝试开始使用起订量 但无法找到任何好的资源来完成我需要的事情 我有一个数据接口类 它有一个 Get 方法 该方法通过存储过程返回数据集 这就是代码的编写方式 我目前无法更改它 因此必须以这种方式完成 我想通过模拟数据集并返回数据来测试
  • iOS 13 中使用 Quickblox 和 CallKit 的传入视频通话问题

    功能 我在应用程序中实现了 QuickBlox 视频通话 问题 如果应用程序处于后台 收件人不会收到来电通知 结果 视频通话在 iOS 12 上运行良好 但在 iOS 13 上仅出现问题 我查了很多链接来解决这个问题 https docs
  • Xcode 9 中 UINavigationController 方法 setToolbarHidden bug:无限计算自动布局约束导致 OOM

    我有一个实例UINavigationController嵌套在UITabBarController 我使用导航控制器到达某个视图控制器 选项卡栏仍然可见 然后从该控制器转到第二个视图控制器 选项卡栏不再可见 在第二个视图控制器中 一旦我调用
  • android 在发布版本中添加 DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    使用 api 级别 33 构建我的应用程序后 android 正在合并清单中添加新权限
  • 更改 statelistdrawable 文本颜色 android 按钮

    我正在开发 Android 应用程序 我对按钮的每个状态 按下 正常 有不同的背景可绘制和文本颜色 我创建了 statelistdrawable 对象以便能够添加背景可绘制对象 但我现在的问题是如何设置文本颜色 有人可以帮忙吗 Button
  • 单击提交按钮的值

    这应该是非常简单的 我正在检查是否使用 jquery 提交表单 该表单有多个具有不同值的提交按钮
  • 如何捕获 Mule foreach 作用域中的异常但保持进程继续进行?

    我是 Mule ESB 的新手 我创建了一个简单的流程 循环遍历订单列表并调用 Magento API 来逐一更新订单状态 我的问题是 如果 foreach 范围内发生任何异常 整个过程就会结束 我尝试使用异常策略来捕获异常 它确实捕获了异