Nisheedh For Axis2, and SOAP12, you don't need to send a SOAP action header.
You do need to help Axis2 figure out what the operation is tho. The process by which Axis2 decides the service and operation is called "dispatching". There are multiple dispatchers that look for different things: URL - you can specify /axis2/services/ServiceName/OperationName SOAPAction WS-Addressing headers (e.g. wsa:Action) SOAPBody These are executed in order, and once it has found a service and operation name it stops. The SOAPMessageBodyBasedDispatcher will try to set the operation to be the tagname of the first element in the SOAP body. Paul On 1/12/07, Nisheed Raveendran <[EMAIL PROTECTED]> wrote:
Hi Anne, Thanks for SoapAction header clarification in Soap 1.1. With axis2, I am forcea to send SOAPAction for Soap 1.2 web service also. Is this a bug in axis2? Regards, Nisheedh -----Original Message----- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Thursday, January 11, 2007 10:01 PM To: axis-user@ws.apache.org Subject: Re: SOAPAction in axis2 SOAP 1.1 requires that the SOAPAction header be present. Anne On 1/11/07, Nisheed Raveendran <[EMAIL PROTECTED]> wrote: > > > > > 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 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Paul Fremantle VP/Technology, WSO2 and OASIS WS-RX TC Co-chair http://bloglines.com/blog/paulfremantle [EMAIL PROTECTED] "Oxygenating the Web Service Platform", www.wso2.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]