Hi,
I have a query about SoapAction in axis2. Why is compulsory to
send a SoapAction header to call axis2 service from curl?
If SoapAction is not send to a Soap 1.2 service, a fault messages is
generated by axis2.
The following call
curl --data-binary @soap12.txt --output output.txt --trace-ascii
TRACE_FILE
--silent --trace-time -H "Content-Type:
application/soap+xml;charset=UTF-8"
http://localhost:9090/axis2/services/TestService
Generates the fault
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Heade
r
/><soapenv:Body><soapenv:Fault><faultcode></faultcode><faultstring>Conte
nt type should be one of /n text/xml/n
application/x-www-form-urlencoded/n multipart/related; nested exception
is:
org.apache.axis2.AxisFault: Content type should be one
of /n text/xml/n application/x-www-form-urlencoded/n
multipart/related</faultstring><detail
/></soapenv:Fault></soapenv:Body></soapenv:Envelope>
To my understanding, Soap Action is deprecated in Soap 1.2.
For Soap1.1 service also, Axis2 is unable to locate the operation
without Soap Action. I am using wrapped document literal style. So axis2
should be able to locate the service from Soap Body. Am I missing out
something? For Soap 1.1, if I send an empty soap action, the call works
fine.
Why is it compulsory to send an empty Soap action for soap 1.1?
Any thoughts will be appreciated.
Regards,
Nisheedh