You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Gnanaguru S <gn...@gmail.com> on 2014/03/25 06:31:56 UTC
Route based on Soap Action
Hi,
The requestor doesnt send any additional headers to the request, So I have
to route the messages based on the SoapAction. ( Payload format)
But when I send a request, Soap UI returns this error.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>The given SOAPAction http://test.com/test1/Enquiry
does not match an operation.</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
This is my camel route:
<choice>
<when>
<xpath>/soapenv:Envelope/soapenv:Header/wsa:Action/text()='http://test.com/test1/Enquiry'</xpath>
<to
uri="direct:B" />
</when>
<otherwise>
<setFaultBody>
<simple>Invalid Operation</simple>
</setFaultBody>
</otherwise>
</choice>
Any clues ?
Regards
Guru
--
View this message in context: http://camel.465427.n5.nabble.com/Route-based-on-Soap-Action-tp5749316.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Route based on Soap Action
Posted by Christian Müller <ch...@gmail.com>.
You should share the entire route if you are looking for help...
Best,
Christian
-----------------
Software Integration Specialist
Apache Member
V.P. Apache Camel | Apache Camel PMC Member | Apache Camel committer
Apache Incubator PMC Member
https://www.linkedin.com/pub/christian-mueller/11/551/642
On Tue, Mar 25, 2014 at 6:31 AM, Gnanaguru S <gn...@gmail.com> wrote:
> Hi,
>
> The requestor doesnt send any additional headers to the request, So I have
> to route the messages based on the SoapAction. ( Payload format)
>
> But when I send a request, Soap UI returns this error.
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Body>
> <soap:Fault>
> <faultcode>soap:Server</faultcode>
> <faultstring>The given SOAPAction http://test.com/test1/Enquiry
> does not match an operation.</faultstring>
> </soap:Fault>
> </soap:Body>
> </soap:Envelope>
>
>
> This is my camel route:
>
> <choice>
> <when>
>
>
>
> <xpath>/soapenv:Envelope/soapenv:Header/wsa:Action/text()='
> http://test.com/test1/Enquiry'</xpath>
>
> <to
> uri="direct:B" />
> </when>
> <otherwise>
> <setFaultBody>
> <simple>Invalid Operation</simple>
> </setFaultBody>
> </otherwise>
> </choice>
>
> Any clues ?
>
> Regards
> Guru
>
>
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Route-based-on-Soap-Action-tp5749316.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
Re: Route based on Soap Action
Posted by Gnanaguru S <gn...@gmail.com>.
Hi Chris,
I solved this issue using the Message format itself, but interestingly the
soapaction URL comes in a double quote & camel simple components expects a
single quote around it. After that the choice router delegates the messages
based on the soap action.
This is the working code:
<simple>${in.header.SOAPAction} contains
'"http://test.com/test1/Enquiry"'</simple>
By the way, It will be helpful if you can comment on *' How to retrieve the
soap action in the payload mode ? '*
My current code:
<camelContext id="test-gateway" useMDCLogging="true" handleFault="true"
trace="${camel.context.trace}">
<propertyPlaceholder id="properties" location="ref:com.test.test1" />
<endpoint id="log-info" uri="log:com.test?level=INFO" />
<route id="ws-gateway-request-handler">
<from uri="cxf:bean:test-ws?dataFormat=PAYLOAD" />
<log message="recieved ws payload: ${body}" />
<choice>
<when>
<xpath>/soapenv:Envelope/soapenv:Header/wsa:Action/text()='http://test.com/test1/Enquiry'</xpath>
<to uri="direct:B" />
</when>
<otherwise>
<setFaultBody>
<simple>Invalid Operation</simple>
</setFaultBody>
</otherwise>
</choice>
<log message="sent response payload: ${body}" />
</route>
<route id="Step-2">
<from uri="jms:queue:Hop2" />
<to uri="string-template:samples/adapters/Response.xml" />
</route>
</camelContext>
Regards
Guru
--
View this message in context: http://camel.465427.n5.nabble.com/Route-based-on-Soap-Action-tp5749316p5749363.html
Sent from the Camel - Users mailing list archive at Nabble.com.