Hi Team,
I got the solution, So thought to share with all.
If you look at the error msg:
" org.springframework.ws.soap.client.SoapFaultClientException: The message
with Action '' cannot be processed at the receiver"
It says about Action. Since I am new to soap service I did
not realized what does that mean, but it simply means that your remote web
service requires a SOAP action for the service call you are making.
Now where to find out the "Action" for your service call? This too is
simple you can check your WSDL and you can find the Action corresponding to
your service.
Now add this Action using below syntax in camel route.
The solution for this is that you have to add soapAction
from("direct:example")
.to("spring-ws:http://foo.com/bar?soapAction=http://foo.com&wsAddressingAction=http://bar.com")
That is it.
--cheers,
atg roxx
On Tue, Apr 17, 2012 at 10:21 AM, atg roxx <[email protected]> wrote:
> Hi Team,
>
> I am trying to pass soap msg to the soap end point and get the result for
> this I am using camel spring-ws component.
>
> My Route flow is like this:
>
> Take a xml file from input queue.
>
> unmarshal and marshall the file (using JaxbDataFormat) to get the xml with
> all namespace etc. to send to soap end point.
>
> send this xml using camel spring-ws to soap end point.
>
>
> My problem is after marshalling the xml which I am getting has all the
> namespace etc which the server endpoint expect and if I pass this xml as
> soap body using SOAPUI it works fine and return desired output.
>
> But the same return SoapFaultClientException when I pass it using camel
> sping-ws service to the soap end point.
>
>
> the error which I am getting is:
> -==============
> (DssCamelContext) thread #6 - JmsConsumer[com.mondial.request] INFO
> route4 - Requesting Mondial GetProductPriceOffers with CorrelationID:
> DSSCorrelationId452211
> org.springframework.ws.soap.client.SoapFaultClientException: The message
> with Action '' cannot be processed at the receiver, due to a ContractFilter
> mismatch at the EndpointDispatcher. This may be because of either a
> contract mismatch (mismatched Actions between sender and receiver) or a
> binding/security mismatch between the sender and the receiver. Check that
> sender and receiver have the same contract and the same binding (including
> security requirements, e.g. Message, Transport, None).
> at
> org.springframework.ws.soap.client.core.SoapFaultMessageResolver.resolveFault(SoapFaultMessageResolver.java:37)
> at
> org.springframework.ws.client.core.WebServiceTemplate.handleFault(WebServiceTemplate.java:733)
> at
> org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:559)
> at
> org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:496)
> at
> org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:451)
> at
> org.springframework.ws.client.core.WebServiceTemplate.sendSourceAndReceive(WebServiceTemplate.java:438)
> at org.springframework.ws.cli
>
> ===========
>
> Any suggestion why this is happening or what I am missing or how can we
> resolve it.
>
> -cheers,
> atg roxx.
>
>
>
>