Hi On 21 Aug 2014, at 08:18, Claus Ibsen <[email protected]> wrote:
> Hi > > You can use tracer to see the messages details during routing and see > what headers you have > http://camel.apache.org/tracer Thanks for the reference! I added the trace attribute to the route (see below). > Also mind that maybe the content type header is not 100% matching > 'application/xml' etc. As sometimes they may have charset or other > values included. Yes, but since I’m currently using curl I am sure (and see the trace below) that it is send without encoding information. > > The simple language has a contains function you can use > http://camel.apache.org/simple > Tanks for referencing. I just realised that I did not include the version I use and the environment. Sorry for that. It’s Camel 2.10.7 which is embedded in ServiceMix 4.5.3. The file I copy into the deploy folder of SMX looks like this (it’s the simplified version) <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd "> <camelContext xmlns="http://camel.apache.org/schema/blueprint"> <route trace="true"> <from uri="jetty:http://localhost:4000/harald/call"/> <choice> <when> <simple>${in.headers['Content-Type']} == 'application/json'</simple> <to uri="log:JSON?level=INFO"/> </when> <when> <simple>${in.headers['Content-Type']} == 'application/xml'</simple> <to uri="log:XML?level=INFO"/> </when> <otherwise> <to uri="log:RAW?level=INFO"/> </otherwise> </choice> </route> </camelContext> </blueprint> Then I used curl to send requests. The following shows three calls and the output of them, hard to read but complete. Thanks for helping! Best regards, harald curl -X POST -H "Content-Type:application/json" --data "{"Hello":"World"}" http://localhost:4000/harald/call 10:39:19,421 | INFO | qtp795636687-809 | Tracer | 100 - org.apache.camel.camel-core - 2.10.7 | ID-beauty-49610-1408606366390-10-10 >>> (route24) from(http://localhost:4000/harald/call) --> choice <<< Pattern:InOut, Headers:{CamelHttpMethod=POST, Host=localhost:4000, CamelHttpPath=/harald/call, CamelHttpUri=/harald/call, CamelHttpQuery=null, Content-Length=13, CamelHttpServletResponse=HTTP/1.1 200 , User-Agent=curl/7.30.0, breadcrumbId=ID-beauty-49610-1408606366390-10-11, Content-Type=application/json, Accept=*/*, CamelHttpUrl=http://localhost:4000/harald/call, CamelHttpServletRequest=(POST /harald/call)@504434790 org.eclipse.jetty.server.Request@1e111066}, BodyType:org.apache.camel.converter.stream.InputStreamCache, Body:[Body is instance of org.apache.camel.StreamCache] 10:39:19,422 | INFO | qtp795636687-809 | Tracer | 100 - org.apache.camel.camel-core - 2.10.7 | ID-beauty-49610-1408606366390-10-10 >>> (route24) choice --> log://RAW?level=INFO <<< Pattern:InOut, Headers:{CamelHttpMethod=POST, Host=localhost:4000, CamelHttpPath=/harald/call, CamelHttpUri=/harald/call, CamelHttpQuery=null, Content-Length=13, CamelHttpServletResponse=HTTP/1.1 200 , User-Agent=curl/7.30.0, breadcrumbId=ID-beauty-49610-1408606366390-10-11, Content-Type=application/json, Accept=*/*, CamelHttpUrl=http://localhost:4000/harald/call, CamelHttpServletRequest=(POST /harald/call)@504434790 org.eclipse.jetty.server.Request@1e111066}, BodyType:org.apache.camel.converter.stream.InputStreamCache, Body:[Body is instance of org.apache.camel.StreamCache] 10:39:19,422 | INFO | qtp795636687-809 | RAW | 100 - org.apache.camel.camel-core - 2.10.7 | Exchange[ExchangePattern:InOut, BodyType:org.apache.camel.converter.stream.InputStreamCache, Body:[Body is instance of org.apache.camel.StreamCache]] curl -X POST -H "Content-Type:application/xml" --data "<Hello>World</Hello>" http://localhost:4000/harald/call 10:39:58,098 | INFO | qtp795636687-809 | Tracer | 100 - org.apache.camel.camel-core - 2.10.7 | ID-beauty-49610-1408606366390-10-12 >>> (route24) from(http://localhost:4000/harald/call) --> choice <<< Pattern:InOut, Headers:{CamelHttpUrl=http://localhost:4000/harald/call, CamelHttpQuery=null, breadcrumbId=ID-beauty-49610-1408606366390-10-13, CamelHttpServletResponse=HTTP/1.1 200 , CamelHttpMethod=POST, Content-Type=application/xml, CamelHttpServletRequest=(POST /harald/call)@954758347 org.eclipse.jetty.server.Request@38e874cb, Host=localhost:4000, CamelHttpPath=/harald/call, User-Agent=curl/7.30.0, Content-Length=20, Accept=*/*, CamelHttpUri=/harald/call}, BodyType:org.apache.camel.converter.stream.InputStreamCache, Body:[Body is instance of org.apache.camel.StreamCache] 10:39:58,098 | INFO | qtp795636687-809 | Tracer | 100 - org.apache.camel.camel-core - 2.10.7 | ID-beauty-49610-1408606366390-10-12 >>> (route24) choice --> log://RAW?level=INFO <<< Pattern:InOut, Headers:{CamelHttpUrl=http://localhost:4000/harald/call, CamelHttpQuery=null, breadcrumbId=ID-beauty-49610-1408606366390-10-13, CamelHttpServletResponse=HTTP/1.1 200 , CamelHttpMethod=POST, Content-Type=application/xml, CamelHttpServletRequest=(POST /harald/call)@954758347 org.eclipse.jetty.server.Request@38e874cb, Host=localhost:4000, CamelHttpPath=/harald/call, User-Agent=curl/7.30.0, Content-Length=20, Accept=*/*, CamelHttpUri=/harald/call}, BodyType:org.apache.camel.converter.stream.InputStreamCache, Body:[Body is instance of org.apache.camel.StreamCache] 10:39:58,098 | INFO | qtp795636687-809 | RAW | 100 - org.apache.camel.camel-core - 2.10.7 | Exchange[ExchangePattern:InOut, BodyType:org.apache.camel.converter.stream.InputStreamCache, Body:[Body is instance of org.apache.camel.StreamCache]] curl -X POST -H "Content-Type:text/text" --data "Hello World" http://localhost:4000/harald/call 10:41:32,288 | INFO | qtp795636687-810 | Tracer | 100 - org.apache.camel.camel-core - 2.10.7 | ID-beauty-49610-1408606366390-10-14 >>> (route24) from(http://localhost:4000/harald/call) --> choice <<< Pattern:InOut, Headers:{CamelHttpQuery=null, CamelHttpUrl=http://localhost:4000/harald/call, CamelHttpMethod=POST, Accept=*/*, Content-Type=text/text, CamelHttpServletRequest=(POST /harald/call)@789730262 org.eclipse.jetty.server.Request@2f1253d6, CamelHttpUri=/harald/call, breadcrumbId=ID-beauty-49610-1408606366390-10-15, CamelHttpPath=/harald/call, CamelHttpServletResponse=HTTP/1.1 200 , Content-Length=11, Host=localhost:4000, User-Agent=curl/7.30.0}, BodyType:org.apache.camel.converter.stream.InputStreamCache, Body:[Body is instance of org.apache.camel.StreamCache] 10:41:32,289 | INFO | qtp795636687-810 | Tracer | 100 - org.apache.camel.camel-core - 2.10.7 | ID-beauty-49610-1408606366390-10-14 >>> (route24) choice --> log://RAW?level=INFO <<< Pattern:InOut, Headers:{CamelHttpQuery=null, CamelHttpUrl=http://localhost:4000/harald/call, CamelHttpMethod=POST, Accept=*/*, Content-Type=text/text, CamelHttpServletRequest=(POST /harald/call)@789730262 org.eclipse.jetty.server.Request@2f1253d6, CamelHttpUri=/harald/call, breadcrumbId=ID-beauty-49610-1408606366390-10-15, CamelHttpPath=/harald/call, CamelHttpServletResponse=HTTP/1.1 200 , Content-Length=11, Host=localhost:4000, User-Agent=curl/7.30.0}, BodyType:org.apache.camel.converter.stream.InputStreamCache, Body:[Body is instance of org.apache.camel.StreamCache] 10:41:32,289 | INFO | qtp795636687-810 | RAW | 100 - org.apache.camel.camel-core - 2.10.7 | Exchange[ExchangePattern:InOut, BodyType:org.apache.camel.converter.stream.InputStreamCache, Body:[Body is instance of org.apache.camel.StreamCache]]
signature.asc
Description: Message signed with OpenPGP using GPGMail
