[ 
https://issues.apache.org/jira/browse/SYNAPSE-498?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Asankha C. Perera resolved SYNAPSE-498.
---------------------------------------

    Resolution: Fixed

The XPath extension function get-property() is now extended to indicate if the 
message (ie the transport, message formatter, or message payload) indicates a 
fault message

To detect SOAP 1.1 / 1.2, POX, and other (e.g. Hessian) faults etc, one can 
just write:

                <filter xpath="get-property('FAULT')">
                    <!-- fault logic here -->
                    <log level="custom">
                        <property name="MSG" value="SOAP Fault"/>
                    </log>
                </filter>

This also eliminates the need to write a long XPath expression to detect SOAP 
1.1/1.2 faults:

<filter xpath="/soap11:Envelope/soap11:Body/soap11:Fault or 
/soap12:Envelope/soap12:Body/soap12:Fault" 
                    xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"; 
                    xmlns:soap12="http://www.w3.org/2003/05/soap-envelope";>
                

> Make it easier to detect fault messages when mediating them
> -----------------------------------------------------------
>
>                 Key: SYNAPSE-498
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-498
>             Project: Synapse
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 1.2
>            Reporter: Asankha C. Perera
>            Assignee: Asankha C. Perera
>            Priority: Minor
>             Fix For: 1.3
>
>
> It should be easy to find if a message being mediated upon is an error or a 
> fault. Currently for SOAP interactions, one may have to write a filter as 
> shown below to detect a SOAP 1.1 and/or 1.2 fault
> <filter xpath="/soap11:Envelope/soap11:Body/soap11:Fault or 
> /soap12:Envelope/soap12:Body/soap12:Fault"
>                     xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/";
>                     xmlns:soap12="http://www.w3.org/2003/05/soap-envelope";>
> It should also be possible for someone to check for POX and other types of 
> faults, which maybe indicated by the transport and/or other (possibly within 
> the payload of a binary message) information as well. e.g. HTTP response code 
> for POX, custom binary indication for Hessian
> One possible way of implementing this is using the get-property() function, 
> and allowing someone to detect any known fault messages with say a 
> "get-property('FAULT')" call - which could check for SOAP 1.1/1.2, HTTP 
> non-2xx, and Hessian faults etc. For HTTP one could also check the status 
> code via the already available HTTP_SC property on the Axis2 message context 
> level.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to