WebReference.com - Chapter 30 of Curl Programming Bible, from John Wiley & Sons (4/8)
[previous] [next] |
Curl Programming Bible, chapter 30
Troubleshooting SOAP Calls
The Soap-1-1-HttpOperation
.call has a trace?
keyword argument that may be useful in troubleshooting SOAP calls. If trace?
is set to true
, the HTTP request (containing the SOAP request) and the HTTP response (containing the SOAP response) are written to the Output Log.
If you get an error message of the form unable to marshal value of XML type ...,
the Curl SOAP support could not find a procedure to convert an input argument into XML. It attempts to find this procedure using the information in the descriptor corresponding to the argument. When you get this error, it may indicate the information in the argument descriptor is incorrect or that you need to supply a procedure to marshal the argument into XML (because it is not one of the Curl supplied mappings). Or the error may indicate that you did not register the mapping or supply the registry in the call method. See "Creating Custom Mappings" for more information.
If you get a message of the form unable to unmarshal value of XML type ...,
the Curl SOAP support could not find a procedure to convert the XML representing an output argument into a Curl value. When you get this error, it may indi-cate the information in the argument descriptor is incorrect or that you need to supply a procedure to unmarshal the XML data into a Curl value (because it is not one of the Curl supplied mappings). Or the error may indicate that you did not register the mapping or supply the registry in the call method. See "Creating Custom Mappings" for more information.
If you get an error message of the form error converting...,
it indicates an error when decoding XML representing an output argument into a Curl value. This may happen when the corresponding argument descriptor contains incorrect type information. You can use the trace?
keyword argument on the call to examine the response message. The response message contains the output argument that caused the failure.
A SOAP call may throw a Soap-1-1-FaultException
. This happens when the SOAP response contains a SOAP Fault element. The SOAP Fault element has a faultcode subelement. The fault-code
field of Soap-1-1-FaultException
contains the value of the faultcode subelement. SOAP defines four values of faultcode:
VersionMismatch
MustUnderstand
Client
Server
A faultcode value of VersionMismatch
means the SOAP server does not understand SOAP 1.1 requests. SOAP 1.1 is the first and most widely deployed SOAP version so it is unlikely the faultcode will have this value.
A faultcode value of MustUnderstand
means the SOAP request contained a SOAP Header with the mustUnderstand
attribute and the SOAP server does not understand part of that SOAP Header.
A faultcode value of Client
means the SOAP server detected an error in the SOAP request. Usually this means there is an error in the information that describes the SOAP operation (the fields of the Soap-1-1-HttpOperation
). You can use the trace?
keyword argument on the call to examine the response message. The SOAP Fault element in the response message often contains additional information that may help diagnose the reason for the failure.
A faultcode value of Server
means the SOAP request failed for reasons related to the SOAP server rather than any error in the SOAP request. You can use the trace?
keyword argument on the call to examine the response message. The SOAP Fault element in the response message often contains additional information that may help diagnose the reason for the failure.
A SOAP request may cause an HTTP error. The cause of the failure may be that the address field of the Soap-1-1-HttpOperation
is incorrectly specified. Or it may be that the Web server is unavailable.
A SOAP request may cause a SecurityException
. See the "SOAP and Security" section in this chapter for more information.
[previous] [next] |
Created: August 14, 2002
Revised: August 14, 2002
URL: https://webreference.com/programming/curlbible/chap30/4.html