I like to use Spring WS for consuming a 3th-party webservice for which I only have a wsdl. I extracted the xsd schema from the wsdl and generated the classes using JAXB1.
Using the WebserviceTemplate.marshalSendAndReceive(Object requestPayload) the webservice gets called but the SOAP message is missing the operation so I get a org.springframework.ws.soap.client.SoapFaultClient Exception: JAXRPCTIE01: caught exception while handling request: unrecognized operation" exception.
The SOAP message send is something like this:
While it should be something like this:Code:<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <someMethodParameter>process this</someMethodParameter> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
As you see I need to incorperate a operation (myOperation) (and possibly a target namespace) into the SOAP message so the webservice knows what I want. I know I probably should not use Spring WS like this but I wonder if it is possible at all or perhaps I am better of with a generated client using Axis/CFX.Code:<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:myns="http://my.example.com/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <myns:myOperation> <someMethodParameter>process this</someMethodParameter> </myns:myOperation> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Thanks.


Reply With Quote