mule - 如何从私有(private)流中传播异常?

标签 mule

我在某处读到异常不会从 Mule (3.2) 中的私有(private)流中传播出来。如果是这样,是否还有另一个骡子结构:

  • 是一个消息处理器链
  • 可以从另一个构造中引用
  • 将异常传播到调用结构

或者,有没有办法绕过异常不会从私有(private)流中传播的限制?

您可以使用 mule-config.xml 和下面的 java 代码来重现我上面描述的行为,其中异常不会从私有(private)流中传播:

mule-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core"
  xmlns:stdio="http://www.mulesoft.org/schema/mule/stdio"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="
    http://www.mulesoft.org/schema/mule/stdio http://www.mulesoft.org/schema/mule/stdio/3.2/mule-stdio.xsd
    http://www.mulesoft.org/schema/mule/core  http://www.mulesoft.org/schema/mule/core/3.2/mule.xsd">

<stdio:connector name="unused" promptMessage="Yes? " messageDelayTime="1000" />

<flow name="throwsException">
    <component class="apackage.ThrowsException" />
</flow>

<flow name="echo">
    <stdio:inbound-endpoint system="IN"/>

    <flow-ref name="throwsException" />
    <component class="apackage.DuplicateString" />

    <stdio:outbound-endpoint system="OUT"/>
</flow>

</mule>

ThrowsException.java

package apackage;

public class ThrowsException {

    public String throwsException(String string) {
        throw new RuntimeException();
    }

}

DuplicateString.java

package apackage;

public class DuplicateString {

    public String duplicateString(String string) {
        return string.concat(string);
    }

}

最佳答案

看起来您想使用子流而不是另一个流。

  • 一个流程,有自己的生命周期、异常处理和处理策略等。
  • 子流的行为与可重用的宏完全相同,它与将相同的处理器复制并粘贴到引用和使用子流的流中相同。

HTH。

关于mule - 如何从私有(private)流中传播异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9202795/

相关文章:

java - 如何解决 Junit for spring + mule ESB 项目的 clearCache() 方法的 java.lang.NoSuchMethodError

mule - 消息丰富器和变量

mysql - 如何在 MYSQL 和 Mule 中处理 size=0 响应

jvm - MuleStudio - 错误 failed 无法加载 JNI 共享库

soap - 如何在 mule 中手动抛出 Soap Fault

xslt - 没有在 xslt transformer mule esb 中获得值(value)

mule - 请求-回复范围与请求-响应交换模式

java - Mule ESB MEL 表达式返回 NULL

json - Dataweave - 过滤字段值是否为空

Mule - 将文件放在哪里以便 Mule Studio 和 Mule Standalone 可以读取它?