Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.4
-
None
-
None
-
Win XP; JDK 1.4.2; Axis 1.4
Description
The soapaction value should be set in the HTTP header SOAPAction for SOAP 1.1. But for SOAP 1.2, it should be set in the action parameter of the content type. However, the current implementation of org.apache.axis.transport.http.HTTPSender and CommonsHTTPSender sets this value in the SOAPAction header for both SOAP 1.1. and 1.2.
Concretely, when the soapaction property (Call.SOAPACTION_URI_PROPERTY ) in the MessageContext is set to value "some-action", the current implementation writes for SOAP 1.2:
Content-Type: application/soap+xml; charset=UTF-8
...
SOAPAction: "some-action"
But the correct behavior for SOAP 1.2 should be to have:
Content-Type: application/soap+xml; charset=UTF-8; action="some-action"
...
To correct this behavior, HTTPSender.java and CommonsHTTPSender.java need to be modified so that the soapaction is serialized differently based on the SOAP version (i.e., based on msgContext.getSOAPConstants() )
A relevant problem for SOAP 1.2 is the SOAP with attachments. The current implementation does not use the correct content type for the SOAP part under SOAP 1.2.
To fix this problem, AttachmentsImpl.java and MimeUtils.java need to be changed to take the SOAP version in consideration.
The diff files and the modified source files for those classes are included in the attached zip file.
Thank you.
Best regards, Aki