I\'m trying to implement a client for National Rail Enquiries\' SOAP Service (http://www.livedepartureboards.co.uk/ldbws/).
I stick the WSDL (http://realtime.nationa
We put together Web Services on Windows Server and were trying to connect with PHP on Apache. We got the same error. The issue ended up being different versions of the Soap client on the different servers. Matching the SOAP versions in the options on both servers solved the issue in our case.
When soapAction
is missing in the SOAP 1.2 request (and many clients do not set it, even when it is specified in WSDL), some app servers (eg. jboss) infer the "actual" soapAction
from {xsd:import namespace}+{wsdl:operation name}
.
So, to make the inferred "actual" soapAction
match the expected soapAction
, you can set the expected soapAction to {xsd:import namespace}+{wsdl:operation name}
in your WS definition (@WebMethod(action=...
) for Java EE)
Eg. for a typical Java EE case, this helps (not the Stewart's case, National Rail WS has 'soapAction' set):
@WebMethod(action = "http://packagename.of.your.webservice.class.com/methodName")
If you cannot change the server, you will have to force client to fill soapAction
.