当出现异常时,Mule请求-应答挂起

当出现异常时,Mule请求-应答挂起,mule,Mule,我有一个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" /> &

我有一个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>


当组件
org.ram.BusinessComponent
抛出异常时,调用上述流的浏览器刚刚挂起,根本没有响应

org.ram.BusinessComponent
没有引发异常时,浏览器会得到响应


有人能解决这个问题吗?

我可以在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>


我对问题进行了编辑,以包括
回滚异常策略
。你能看一下吗?我想这应该是一个新问题。请创建一个新问题。好的。我提出了一个新问题。谢谢你的回答
<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>