【问题标题】:Mule Request Reply hangs when an exception异常时骡请求回复挂起
【发布时间】:2015-11-16 13:26:58
【问题描述】:

我有一个 mule 流程,我在其中配置了请求回复范围。流程如下:

<flow name="RequestReplyFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP" />
    <set-payload value="#['Sample Payload']" doc:name="Set Payload" />
    <request-reply doc:name="Request-Reply">
        <vm:outbound-endpoint exchange-pattern="one-way" path="request" doc:name="VM" />
        <vm:inbound-endpoint exchange-pattern="one-way" path="reply" doc:name="VM" />
    </request-reply>
</flow>

<flow name="RequestReplyFlow1">
    <vm:inbound-endpoint exchange-pattern="one-way" path="request" doc:name="VM" />
    <logger message="Executing with payload: #[payload]" level="INFO" doc:name="Logger" />
    <component class="org.ram.BusinessComponent" doc:name="Java" />
    <catch-exception-strategy doc:name="Catch Exception Strategy">
        <logger level="INFO" doc:name="Logger"/>
    </catch-exception-strategy>
</flow>

当组件org.ram.BusinessComponent抛出异常时,调用上述流程的浏览器刚刚挂掉,完全没有响应。

org.ram.BusinessComponent 没有抛出异常时,浏览器会得到响应。

谁能解决这个问题?

【问题讨论】:

    标签: mule


    【解决方案1】:

    我可以在 Mule 3.6.2 中重现该问题。问题是,当抛出异常时,流程不会重定向到请求-回复以继续流程,在这些情况下,您可以通过添加“vm:outbound-endpoint”在“catch-exception”中手动指定重定向" 与“回复”路径。示例如下:

    <flow name="RequestReplyFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP" />
        <set-payload value="#['Sample Payload']" doc:name="Set Payload" />
        <request-reply doc:name="Request-Reply">
            <vm:outbound-endpoint exchange-pattern="one-way" path="request" doc:name="VM" />
            <vm:inbound-endpoint exchange-pattern="one-way" path="reply" doc:name="VM" />
        </request-reply>
    </flow>
    
    <flow name="RequestReplyFlow1">
        <vm:inbound-endpoint exchange-pattern="one-way" path="request" doc:name="VM" />
        <logger message="Executing with payload: #[payload]" level="INFO" doc:name="Logger" />
        <component class="org.ram.BusinessComponent" doc:name="Java" />
        <catch-exception-strategy doc:name="Catch Exception Strategy">
            <logger level="INFO" doc:name="Logger"/>
            <vm:outbound-endpoint exchange-pattern="one-way" path="reply" doc:name="VM" />
        </catch-exception-strategy>
    </flow>
    

    【讨论】:

    • 我编辑了问题以包含rollback-exception-strategy。可以看看吗?
    • 我认为这应该是一个新问题。请创建一个新问题。
    • 好的。我创建了一个新问题here。感谢您的回答
    猜你喜欢
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    相关资源
    最近更新 更多