如何在mulesoft中处理异常并发回HTTP响应?
在Mulesoft中,如何在HTTP驱动流中接收全局捕获的异常并返回错误代码,而不是它不返回任何内容?基本上,我有一个HTTP端点请求/响应,然后进行数据库连接。如果db连接失败,它会被捕获,但HTTP响应会以无法识别的内容进行响应。例如,强制500码的优雅方式是什么?谢谢很简单,对于Mule 3.5和更早版本,您可以在全局异常块中配置HTTP响应生成器并返回状态HTTP代码:- 和如何在mulesoft中处理异常并发回HTTP响应?,mule,Mule,在Mulesoft中,如何在HTTP驱动流中接收全局捕获的异常并返回错误代码,而不是它不返回任何内容?基本上,我有一个HTTP端点请求/响应,然后进行数据库连接。如果db连接失败,它会被捕获,但HTTP响应会以无法识别的内容进行响应。例如,强制500码的优雅方式是什么?谢谢很简单,对于Mule 3.5和更早版本,您可以在全局异常块中配置HTTP响应生成器并返回状态HTTP代码:- 和 对于Mule 3.6,您可以遵循以下步骤:-如果您只是想捕获连接异常并从中发送一条有意义的消息,您可以尝试下面
对于Mule 3.6,您可以遵循以下步骤:-如果您只是想捕获连接异常并从中发送一条有意义的消息,您可以尝试下面类似的方法 将以下代码作为您选择的例外策略的一部分:
<catch-exception-strategy doc:name="Catch Exception Strategy" when="exception.causedBy(java.net.ConnectException)">
<logger level="INFO" message="Caught Connect Exception" doc:name="Logger"/>
<mulexml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" doc:name="XSLT" xsl-file="ExceptionTransformer">
<mulexml:context-property key="MyException" value="#[groovy:message.getExceptionPayload().getRootException.getMessage()]"/>
</mulexml:xslt-transformer>
</catch-exception-strategy>
定义一个XSLT转换器,将有效负载转换为所需的XML。将异常消息作为上下文参数传递,并在形成XML时使用它。基本上,您可以在此XSLT中设计响应。您可以选择是否提取并发送异常捕获的消息
例外转换器:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="MyException"/>
<xsl:template match="/">
<GenericException>
<faultcode>CE101</faultcode>
<faultstring><xsl:value-of select="$MyException" /></faultstring>
</GenericException>
</xsl:template>
</xsl:stylesheet>
如果您正在使用mule 3.6,您还可以参考返回错误消息一节,这使生活变得更加简单 您可以使用“批处理”选项来保留异常,并基于此可以将自定义响应发回 谢谢!问题是,当我得到一个连接异常并将其从流中删除时,是否有方法将其返回到至少发布一个正确的HTTP响应?我不确定是否可以捕获连接异常。。但在这里,您可以检查并尝试建议:-