如何在Mule中显示来自Web Service的错误而不是Mule的错误消息

时间:2015-02-24 13:59:01

标签: web-services mule esb mule-studio

例如,如果我将错误的帖子/直接放到Web服务上,它会给我这个:

<prestashop>
   <errors>
      <error>
         <message><![CDATA[Internal error. To see this error please display the PHP errors.]]></message>
      </error>
   </errors>
</prestashop>

但是,如果我通过Mule ESB,错误对我或其他开发人员都没有帮助。

500 Internal Server Error
Unexpected character (R) at position 0.
Response code 404 mapped as failure. Message payload is of type: BufferInputStream

这是我在Mule中的流程

<http:request-config name="HTTP_Request_Configuration_PrestaShop4"  host="host.org/api/customers/#[message.inboundProperties.'http.query.string']" port="port" doc:name="HTTP Request Configuration" protocol="HTTPS">
    <http:basic-authentication username="keyU" password="keyP"/>
</http:request-config>

<flow name="prestaShopUpdateCustomerById">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8080" path="prestaShopUpdateCustomerById" doc:name="HTTP"/>
    <logger level="INFO" message="#[message.payloadAs(java.lang.String)]" doc:name="Logger"/>
    <http:request config-ref="HTTP_Request_Configuration_PrestaShop4" path="/" method="PUT" doc:name="HTTP">
        <http:request-builder>
        </http:request-builder>          
    </http:request>
</flow> 

是否有可能使Mule显示webservice的错误而不是此通用消息(此问题同时适用于REST和SOAP Web服务)。

由于

2 个答案:

答案 0 :(得分:3)

尝试添加涵盖所有案例的成功状态代码验证器(您可以更具体): <http:request path="path" method="method" config-ref="requestConfig"> <http:success-status-code-validator values="0..599"/> </http:request> 我希望有所帮助。

答案 1 :(得分:0)

使用MEL#[exception]

提取错误有效负载