FAQ
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.

Search Discussions

  • Atg roxx at Apr 17, 2012 at 11:00 am
    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 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.


  • Claus Ibsen at Apr 17, 2012 at 11:04 am
    Hi

    Thanks for sharing your solution.
    On Tue, Apr 17, 2012 at 1:00 PM, atg roxx wrote:
    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 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.




    --
    Claus Ibsen
    -----------------
    CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
    FuseSource
    Email: cibsen@fusesource.com
    Web: http://fusesource.com
    Twitter: davsclaus, fusenews
    Blog: http://davsclaus.blogspot.com/
    Author of Camel in Action: http://www.manning.com/ibsen/

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupusers @
categoriescamel
postedApr 17, '12 at 9:22a
activeApr 17, '12 at 11:04a
posts3
users2
websitecamel.apache.org

2 users in discussion

Atg roxx: 2 posts Claus Ibsen: 1 post

People

Translate

site design / logo © 2022 Grokbase