Axis-dev –   I wouldn’t belabor this point, as SOAPAction has been a discussion by the W3C XMLP committee for years with little concrete resolution/definition, but I have a partner who is trying to connect a Flash client to Axis, and is running into a few interop issues.

 

I have a question on the handling and presence of the SOAP action header.  Is it required? It seems that Axis requires a SOAP Action header, although my understanding of the SOAP 1.2 spec is that the header is optional….    Axis does use the URL to define/doublecheck the service, so SOAP Action seems redundant.

 

Here’s the relevant AxisServlet.java Code that throws a fault if SOAPAction is not present:

 

            tmp = (String) req.getHeader( HTTPConstants.HEADER_SOAP_ACTION );

        if ( tmp == null ) {

                AxisFault af=  new AxisFault( "Client.NoSOAPAction",

                    JavaUtils.getMessage("noHeader00", "SOAPAction"),

                    null, null );

 

                 log.debug(af);

                throw af;

            }”

 

But the W3C SOAP 1.2 Part 2 Adjunct spec seems to indicate that the value MAY be present rather than MUST:

“Use of the SOAP Action feature is OPTIONAL. SOAP Receivers MAY use it as a hint to optimise processing, but SHOULD NOT require its presence in order to operate. Support for SOAPAction is OPTIONAL in implementations. Implementations SHOULD NOT generate or require SOAPAction UNLESS they have a particular purpose for doing so (e.g., a SOAP Receivers specifies its use).”

If Axis is requiring SOAPAction, the specification states that we should be returning a special HTTP code, “The SOAP Receiver SHOULD ensure that an HTTP status code of 427 (SOAPAction required) is returned to the corresponding HTTP client.   Is this HTTP status code being set by Axis?  Although, from a pragmatic viewpoint, if my client can’t set SOAPAction, it probably can’t recognize the HTTP status code either….

 

Please let me know if my interpretation is correct, or if I should file a patch.

 

Thanks,

 

Chris

 

Reply via email to