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