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]]

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to