SOAP Request working, HTTP Request not
I have a strange problem, and I can't wrap my head around it. I have an embedded Java component in a larger system, which handles web service calls and parses the results. I was given a new WSDL today, and the task to add the new web service endpoints and XML bodies to my components configuration. The web service calls returned 500 error, so I decided to test them in SoapUI. I loaded the WSDL and to my surprise they worked with exact same endpoint and XML body as with my component, but instead of 500 error they kept returning 200 OK. I had an idea, and instead of a SOAP project I created an Empty project with a HTTP Request Test Step, added the endpoint and the XML body, and I received the same 500 error as with my component.
Normally, the WS should return a session id, but instead I received this error:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <soap:Fault> <soap:Code> <soap:Value>soap:Receiver</soap:Value> </soap:Code> <soap:Reason> <soap:Text xml:lang="en">Server was unable to process request. ---> Failed to parse HTTP headers</soap:Text> </soap:Reason> <soap:Detail/> </soap:Fault> </soap:Body> </soap:Envelope>
My question is, what is the difference between the HTTP and the SOAP request steps? The previous web services that I installed to my component's config work flawlessly in SOAP and HTTP request steps too. Where should I check for differences here?
UPDATE:
I didn't realize I can view the raw message I sent in SoapUI, and when I checked it I instantly realized I was missing the SOAPAction header. I added that and everything was fine.