Skip to content

WebServiceTemplate skips handling fault in response with checkConnectionForFault="false" when HTTP status code is not 200 or 500 [SWS-308] #464

Closed
@gregturn

Description

@gregturn

Luciano Montebove opened SWS-308 and commented

When checkConnectionForFault is set to "false" as stated in documentation we should rely on the message only for determining if a response envelope is a Fault.
This actually works only if HTTP response code is 500 or 200, but as for a service I call the server send an HTTP 400 response code with a response containing a Fault (it's clearly not a WS-I Basic Profile compliant web service) the handleError is called instead of handleFault and I get a WebServiceTransportException instead of the Fault related exception.
This breaks WS-I Basic Profile conformance of Spring Web Services as it states:
"... the Profile requires that they examine the envelope. A Fault is an envelope that has a single child element of the soap:Body element, that element being a soap:Fault element.

R1107 A RECEIVER MUST interpret a SOAP message as a Fault when the soap:Body of the message has a single soap:Fault child."


Affects: 1.5 RC1

Issue Links:

Referenced from: commits d52da4c, ebc15af, e95e40a, ee8985c

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions