如何在mulesoft中处理异常并发回HTTP响应?

如何在mulesoft中处理异常并发回HTTP响应?,mule,Mule,在Mulesoft中,如何在HTTP驱动流中接收全局捕获的异常并返回错误代码,而不是它不返回任何内容?基本上,我有一个HTTP端点请求/响应,然后进行数据库连接。如果db连接失败,它会被捕获,但HTTP响应会以无法识别的内容进行响应。例如,强制500码的优雅方式是什么?谢谢很简单,对于Mule 3.5和更早版本,您可以在全局异常块中配置HTTP响应生成器并返回状态HTTP代码:- 和 对于Mule 3.6,您可以遵循以下步骤:-如果您只是想捕获连接异常并从中发送一条有意义的消息,您可以尝试下面

在Mulesoft中,如何在HTTP驱动流中接收全局捕获的异常并返回错误代码,而不是它不返回任何内容?基本上,我有一个HTTP端点请求/响应,然后进行数据库连接。如果db连接失败,它会被捕获,但HTTP响应会以无法识别的内容进行响应。例如,强制500码的优雅方式是什么?谢谢很简单,对于Mule 3.5和更早版本,您可以在全局异常块中配置HTTP响应生成器并返回状态HTTP代码:- 和


对于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响应?我不确定是否可以捕获连接异常。。但在这里,您可以检查并尝试建议:-