wiretap getting header value

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

wiretap getting header value

Preben.Asmussen
Hi

I'm trying to create a auditservice using a wiretap.

eg.
        <camel:route trace="true" id="RapNotificationRoute">
                        <camel:from uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
                        <camel:transacted ref="PROPAGATION_REQUIRED"/>
                        <camel:wireTap uri="seda:audit"/>
                        <camel:to uri="mock:result"/>
                </camel:route>

                <camel:route id="AuditRoute">
                        <camel:from uri="seda:audit"/>
                        <camel:bean ref="auditMessageDAO" method="audit"/>
                </camel:route>

The auditMessageDAO takes 2 parameters

public void audit(@Body String body, @Headers Map headers)

The body gets bound, but the headers parameter doesn't ??
Any idear how this is done best ???


Thanks
Preben
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Claus Ibsen-2
On Wed, Jan 20, 2010 at 9:52 AM, preben <[hidden email]> wrote:

>
> Hi
>
> I'm trying to create a auditservice using a wiretap.
>
> eg.
>        <camel:route trace="true" id="RapNotificationRoute">
>                        <camel:from
> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>                        <camel:transacted ref="PROPAGATION_REQUIRED"/>
>                        <camel:wireTap uri="seda:audit"/>
>                        <camel:to uri="mock:result"/>
>                </camel:route>
>
>                <camel:route id="AuditRoute">
>                        <camel:from uri="seda:audit"/>
>                        <camel:bean ref="auditMessageDAO" method="audit"/>
>                </camel:route>
>
> The auditMessageDAO takes 2 parameters
>
> public void audit(@Body String body, @Headers Map headers)
>
> The body gets bound, but the headers parameter doesn't ??
> Any idear how this is done best ???
>

Use the tracer to see if the headers are avail when you consume from
the Oracle MQ queue. It may play tricks on you :)
http://camel.apache.org/tracer



>
> Thanks
> Preben
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Preben.Asmussen
Hi Claus

Seems that the headers are present even on the wiretap endpoint.
:
[DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO org.apache.camel.processor.interceptor.Tracer
[ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute) from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text) --> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null, JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1, JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614, JMSRedelivered=true, JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832, JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST, JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2, JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2}, BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest record title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest record title</recordLabel><recordTitle>Unittest record title</recordTitle><Names><Name><name>DR SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]

[DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO org.apache.camel.processor.interceptor.Tracer
[ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute) transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<< Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null, JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1, JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614, JMSRedelivered=true, JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832, JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST, JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2, JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2}, BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest record title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest record title</recordLabel><recordTitle>Unittest record title</recordTitle><Names><Name><name>DR SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]

Claus Ibsen-2 wrote
On Wed, Jan 20, 2010 at 9:52 AM, preben <pras@dr.dk> wrote:
>
> Hi
>
> I'm trying to create a auditservice using a wiretap.
>
> eg.
>        <camel:route trace="true" id="RapNotificationRoute">
>                        <camel:from
> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>                        <camel:transacted ref="PROPAGATION_REQUIRED"/>
>                        <camel:wireTap uri="seda:audit"/>
>                        <camel:to uri="mock:result"/>
>                </camel:route>
>
>                <camel:route id="AuditRoute">
>                        <camel:from uri="seda:audit"/>
>                        <camel:bean ref="auditMessageDAO" method="audit"/>
>                </camel:route>
>
> The auditMessageDAO takes 2 parameters
>
> public void audit(@Body String body, @Headers Map headers)
>
> The body gets bound, but the headers parameter doesn't ??
> Any idear how this is done best ???
>

Use the tracer to see if the headers are avail when you consume from
the Oracle MQ queue. It may play tricks on you :)
http://camel.apache.org/tracer



>
> Thanks
> Preben
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Claus Ibsen-2
What does the tracer say in the 2nd route?

camel:route id="AuditRoute">
                       <camel:from uri="seda:audit"/>
                       <camel:bean ref="auditMessageDAO" method="audit"/>

eg from seda:audit -> auditMessageDAO
this is the interesting part

BTW which version of Camel are you using?



On Wed, Jan 20, 2010 at 11:49 AM, preben <[hidden email]> wrote:

>
> Hi Claus
>
> Seems that the headers are present even on the wiretap endpoint.
> :
> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
> org.apache.camel.processor.interceptor.Tracer
> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
> from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text) -->
> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly,
> Headers:{JMSXGroupID=null, JMSReplyTo=null,
> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614, JMSRedelivered=true,
> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
> record
> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
> record title</recordLabel><recordTitle>Unittest record
> title</recordTitle><Names><Name><name>DR
> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>
> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
> org.apache.camel.processor.interceptor.Tracer
> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
> transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<<
> Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null,
> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614, JMSRedelivered=true,
> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
> record
> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
> record title</recordLabel><recordTitle>Unittest record
> title</recordTitle><Names><Name><name>DR
> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>
>
> Claus Ibsen-2 wrote:
>>
>> On Wed, Jan 20, 2010 at 9:52 AM, preben <[hidden email]> wrote:
>>>
>>> Hi
>>>
>>> I'm trying to create a auditservice using a wiretap.
>>>
>>> eg.
>>>        <camel:route trace="true" id="RapNotificationRoute">
>>>                        <camel:from
>>> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>>>                        <camel:transacted ref="PROPAGATION_REQUIRED"/>
>>>                        <camel:wireTap uri="seda:audit"/>
>>>                        <camel:to uri="mock:result"/>
>>>                </camel:route>
>>>
>>>                <camel:route id="AuditRoute">
>>>                        <camel:from uri="seda:audit"/>
>>>                        <camel:bean ref="auditMessageDAO" method="audit"/>
>>>                </camel:route>
>>>
>>> The auditMessageDAO takes 2 parameters
>>>
>>> public void audit(@Body String body, @Headers Map headers)
>>>
>>> The body gets bound, but the headers parameter doesn't ??
>>> Any idear how this is done best ???
>>>
>>
>> Use the tracer to see if the headers are avail when you consume from
>> the Oracle MQ queue. It may play tricks on you :)
>> http://camel.apache.org/tracer
>>
>>
>>
>>>
>>> Thanks
>>> Preben
>>> --
>>> View this message in context:
>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27239795.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Preben.Asmussen
Im using camel v. 2.1.0 Sure the 2nd route says:
[Camel thread 0: seda://audit] 20 jan. 2010 - 12:22:09,858 INFO org.apache.camel.processor.interceptor.Tracer
[42a5443b-0a62-4477-885f-c6f6c40274b1 >>> (AuditRoute) from(seda://audit) --> ref:auditMessageDAO method: audit <<< Pattern:InOnly, Headers:{JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST, JMS_OracleDelay=0, JMSDeliveryMode=2, JMSRedelivered=true, JMS_OracleTimestamp=1263986526156, JMSType=null, JMSCorrelationID=null, JMSXRecvTimestamp=1263986529858, JMSXState=0, JMSXDeliveryCount=2, JMSMessageID=ID:7D97CBE346B7CAA2E040650A0A103AC2, JMSTimestamp=1263986526156, JMSPriority=1, JMSXGroupID=null, JMS_OracleDeliveryMode=2, JMSXUserID=playliste, JMSExpiration=0, JMSReplyTo=null}, BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest record title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest record title</recordLabel><recordTitle>Unittest record title</recordTitle><Names><Name><name>DR SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]

Claus Ibsen-2 wrote
What does the tracer say in the 2nd route?

camel:route id="AuditRoute">
                       <camel:from uri="seda:audit"/>
                       <camel:bean ref="auditMessageDAO" method="audit"/>

eg from seda:audit -> auditMessageDAO
this is the interesting part

BTW which version of Camel are you using?



On Wed, Jan 20, 2010 at 11:49 AM, preben <pras@dr.dk> wrote:
>
> Hi Claus
>
> Seems that the headers are present even on the wiretap endpoint.
> :
> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
> org.apache.camel.processor.interceptor.Tracer
> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
> from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text) -->
> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly,
> Headers:{JMSXGroupID=null, JMSReplyTo=null,
> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614, JMSRedelivered=true,
> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
> record
> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
> record title</recordLabel><recordTitle>Unittest record
> title</recordTitle><Names><Name><name>DR
> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>
> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
> org.apache.camel.processor.interceptor.Tracer
> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
> transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<<
> Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null,
> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614, JMSRedelivered=true,
> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
> record
> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
> record title</recordLabel><recordTitle>Unittest record
> title</recordTitle><Names><Name><name>DR
> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>
>
> Claus Ibsen-2 wrote:
>>
>> On Wed, Jan 20, 2010 at 9:52 AM, preben <pras@dr.dk> wrote:
>>>
>>> Hi
>>>
>>> I'm trying to create a auditservice using a wiretap.
>>>
>>> eg.
>>>        <camel:route trace="true" id="RapNotificationRoute">
>>>                        <camel:from
>>> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>>>                        <camel:transacted ref="PROPAGATION_REQUIRED"/>
>>>                        <camel:wireTap uri="seda:audit"/>
>>>                        <camel:to uri="mock:result"/>
>>>                </camel:route>
>>>
>>>                <camel:route id="AuditRoute">
>>>                        <camel:from uri="seda:audit"/>
>>>                        <camel:bean ref="auditMessageDAO" method="audit"/>
>>>                </camel:route>
>>>
>>> The auditMessageDAO takes 2 parameters
>>>
>>> public void audit(@Body String body, @Headers Map headers)
>>>
>>> The body gets bound, but the headers parameter doesn't ??
>>> Any idear how this is done best ???
>>>
>>
>> Use the tracer to see if the headers are avail when you consume from
>> the Oracle MQ queue. It may play tricks on you :)
>> http://camel.apache.org/tracer
>>
>>
>>
>>>
>>> Thanks
>>> Preben
>>> --
>>> View this message in context:
>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27239795.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Claus Ibsen-2
Hi

So which headers are you looking for to be in the audit bean?
You do not have any custom JMS properties, only the regular JMS headers.

And you are saying that Map instance is empty? or is it null?



On Wed, Jan 20, 2010 at 12:26 PM, preben <[hidden email]> wrote:

>
> Im using camel v. 2.1.0 Sure the 2nd route says:
> [Camel thread 0: seda://audit] 20 jan. 2010 - 12:22:09,858 INFO
> org.apache.camel.processor.interceptor.Tracer
> [42a5443b-0a62-4477-885f-c6f6c40274b1 >>> (AuditRoute) from(seda://audit)
> --> ref:auditMessageDAO method: audit <<< Pattern:InOnly,
> Headers:{JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST, JMS_OracleDelay=0,
> JMSDeliveryMode=2, JMSRedelivered=true, JMS_OracleTimestamp=1263986526156,
> JMSType=null, JMSCorrelationID=null, JMSXRecvTimestamp=1263986529858,
> JMSXState=0, JMSXDeliveryCount=2,
> JMSMessageID=ID:7D97CBE346B7CAA2E040650A0A103AC2,
> JMSTimestamp=1263986526156, JMSPriority=1, JMSXGroupID=null,
> JMS_OracleDeliveryMode=2, JMSXUserID=playliste, JMSExpiration=0,
> JMSReplyTo=null}, BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
> record
> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
> record title</recordLabel><recordTitle>Unittest record
> title</recordTitle><Names><Name><name>DR
> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>
>
> Claus Ibsen-2 wrote:
>>
>> What does the tracer say in the 2nd route?
>>
>> camel:route id="AuditRoute">
>>                        <camel:from uri="seda:audit"/>
>>                        <camel:bean ref="auditMessageDAO" method="audit"/>
>>
>> eg from seda:audit -> auditMessageDAO
>> this is the interesting part
>>
>> BTW which version of Camel are you using?
>>
>>
>>
>> On Wed, Jan 20, 2010 at 11:49 AM, preben <[hidden email]> wrote:
>>>
>>> Hi Claus
>>>
>>> Seems that the headers are present even on the wiretap endpoint.
>>> :
>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>> org.apache.camel.processor.interceptor.Tracer
>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>> from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text) -->
>>> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly,
>>> Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>> JMSRedelivered=true,
>>> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>> record
>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>> record title</recordLabel><recordTitle>Unittest record
>>> title</recordTitle><Names><Name><name>DR
>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>
>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>> org.apache.camel.processor.interceptor.Tracer
>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>> transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<<
>>> Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>> JMSRedelivered=true,
>>> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>> record
>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>> record title</recordLabel><recordTitle>Unittest record
>>> title</recordTitle><Names><Name><name>DR
>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> On Wed, Jan 20, 2010 at 9:52 AM, preben <[hidden email]> wrote:
>>>>>
>>>>> Hi
>>>>>
>>>>> I'm trying to create a auditservice using a wiretap.
>>>>>
>>>>> eg.
>>>>>        <camel:route trace="true" id="RapNotificationRoute">
>>>>>                        <camel:from
>>>>> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>>>>>                        <camel:transacted ref="PROPAGATION_REQUIRED"/>
>>>>>                        <camel:wireTap uri="seda:audit"/>
>>>>>                        <camel:to uri="mock:result"/>
>>>>>                </camel:route>
>>>>>
>>>>>                <camel:route id="AuditRoute">
>>>>>                        <camel:from uri="seda:audit"/>
>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>> method="audit"/>
>>>>>                </camel:route>
>>>>>
>>>>> The auditMessageDAO takes 2 parameters
>>>>>
>>>>> public void audit(@Body String body, @Headers Map headers)
>>>>>
>>>>> The body gets bound, but the headers parameter doesn't ??
>>>>> Any idear how this is done best ???
>>>>>
>>>>
>>>> Use the tracer to see if the headers are avail when you consume from
>>>> the Oracle MQ queue. It may play tricks on you :)
>>>> http://camel.apache.org/tracer
>>>>
>>>>
>>>>
>>>>>
>>>>> Thanks
>>>>> Preben
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27239795.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27240209.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Preben.Asmussen
Actually I was looking for JMSMessageID like this @Header(value="JMSMessageID") String jmsMessageId, but when that didn't work i changed it to @Headers Map to see if I get any values.
The parameter get's bound as null !!

Claus Ibsen-2 wrote
Hi

So which headers are you looking for to be in the audit bean?
You do not have any custom JMS properties, only the regular JMS headers.

And you are saying that Map instance is empty? or is it null?



On Wed, Jan 20, 2010 at 12:26 PM, preben <pras@dr.dk> wrote:
>
> Im using camel v. 2.1.0 Sure the 2nd route says:
> [Camel thread 0: seda://audit] 20 jan. 2010 - 12:22:09,858 INFO
> org.apache.camel.processor.interceptor.Tracer
> [42a5443b-0a62-4477-885f-c6f6c40274b1 >>> (AuditRoute) from(seda://audit)
> --> ref:auditMessageDAO method: audit <<< Pattern:InOnly,
> Headers:{JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST, JMS_OracleDelay=0,
> JMSDeliveryMode=2, JMSRedelivered=true, JMS_OracleTimestamp=1263986526156,
> JMSType=null, JMSCorrelationID=null, JMSXRecvTimestamp=1263986529858,
> JMSXState=0, JMSXDeliveryCount=2,
> JMSMessageID=ID:7D97CBE346B7CAA2E040650A0A103AC2,
> JMSTimestamp=1263986526156, JMSPriority=1, JMSXGroupID=null,
> JMS_OracleDeliveryMode=2, JMSXUserID=playliste, JMSExpiration=0,
> JMSReplyTo=null}, BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
> record
> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
> record title</recordLabel><recordTitle>Unittest record
> title</recordTitle><Names><Name><name>DR
> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>
>
> Claus Ibsen-2 wrote:
>>
>> What does the tracer say in the 2nd route?
>>
>> camel:route id="AuditRoute">
>>                        <camel:from uri="seda:audit"/>
>>                        <camel:bean ref="auditMessageDAO" method="audit"/>
>>
>> eg from seda:audit -> auditMessageDAO
>> this is the interesting part
>>
>> BTW which version of Camel are you using?
>>
>>
>>
>> On Wed, Jan 20, 2010 at 11:49 AM, preben <pras@dr.dk> wrote:
>>>
>>> Hi Claus
>>>
>>> Seems that the headers are present even on the wiretap endpoint.
>>> :
>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>> org.apache.camel.processor.interceptor.Tracer
>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>> from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text) -->
>>> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly,
>>> Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>> JMSRedelivered=true,
>>> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>> record
>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>> record title</recordLabel><recordTitle>Unittest record
>>> title</recordTitle><Names><Name><name>DR
>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>
>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>> org.apache.camel.processor.interceptor.Tracer
>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>> transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<<
>>> Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>> JMSRedelivered=true,
>>> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>> record
>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>> record title</recordLabel><recordTitle>Unittest record
>>> title</recordTitle><Names><Name><name>DR
>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> On Wed, Jan 20, 2010 at 9:52 AM, preben <pras@dr.dk> wrote:
>>>>>
>>>>> Hi
>>>>>
>>>>> I'm trying to create a auditservice using a wiretap.
>>>>>
>>>>> eg.
>>>>>        <camel:route trace="true" id="RapNotificationRoute">
>>>>>                        <camel:from
>>>>> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>>>>>                        <camel:transacted ref="PROPAGATION_REQUIRED"/>
>>>>>                        <camel:wireTap uri="seda:audit"/>
>>>>>                        <camel:to uri="mock:result"/>
>>>>>                </camel:route>
>>>>>
>>>>>                <camel:route id="AuditRoute">
>>>>>                        <camel:from uri="seda:audit"/>
>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>> method="audit"/>
>>>>>                </camel:route>
>>>>>
>>>>> The auditMessageDAO takes 2 parameters
>>>>>
>>>>> public void audit(@Body String body, @Headers Map headers)
>>>>>
>>>>> The body gets bound, but the headers parameter doesn't ??
>>>>> Any idear how this is done best ???
>>>>>
>>>>
>>>> Use the tracer to see if the headers are avail when you consume from
>>>> the Oracle MQ queue. It may play tricks on you :)
>>>> http://camel.apache.org/tracer
>>>>
>>>>
>>>>
>>>>>
>>>>> Thanks
>>>>> Preben
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27239795.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27240209.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Claus Ibsen-2
On Wed, Jan 20, 2010 at 1:46 PM, preben <[hidden email]> wrote:
>
> Actually I was looking for JMSMessageID like this
> @Header(value="JMSMessageID") String jmsMessageId, but when that didn't work
> i changed it to @Headers Map to see if I get any values.
> The parameter get's bound as null !!

And how is auditMessageDAO defined in the XML file?

Those annotations only work if the Spring bean post processor does it
job and let Camel have a chance later.
There used to be some more weird combos where Spring failed to do so.

It will log a INFO/WARN about bean XXX is illegible for bean post
processing or something like that.

You can always use Exchange or Message as the type and get the data,
but I understand if you want to use a clean POJO without using Camel
API in the method signature.

You can try a simpler example to get the POJO stuff working without
the JMS etc. Then you know that Spring + Camel works as expected.



>
>
> Claus Ibsen-2 wrote:
>>
>> Hi
>>
>> So which headers are you looking for to be in the audit bean?
>> You do not have any custom JMS properties, only the regular JMS headers.
>>
>> And you are saying that Map instance is empty? or is it null?
>>
>>
>>
>> On Wed, Jan 20, 2010 at 12:26 PM, preben <[hidden email]> wrote:
>>>
>>> Im using camel v. 2.1.0 Sure the 2nd route says:
>>> [Camel thread 0: seda://audit] 20 jan. 2010 - 12:22:09,858 INFO
>>> org.apache.camel.processor.interceptor.Tracer
>>> [42a5443b-0a62-4477-885f-c6f6c40274b1 >>> (AuditRoute) from(seda://audit)
>>> --> ref:auditMessageDAO method: audit <<< Pattern:InOnly,
>>> Headers:{JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>> JMS_OracleDelay=0,
>>> JMSDeliveryMode=2, JMSRedelivered=true,
>>> JMS_OracleTimestamp=1263986526156,
>>> JMSType=null, JMSCorrelationID=null, JMSXRecvTimestamp=1263986529858,
>>> JMSXState=0, JMSXDeliveryCount=2,
>>> JMSMessageID=ID:7D97CBE346B7CAA2E040650A0A103AC2,
>>> JMSTimestamp=1263986526156, JMSPriority=1, JMSXGroupID=null,
>>> JMS_OracleDeliveryMode=2, JMSXUserID=playliste, JMSExpiration=0,
>>> JMSReplyTo=null}, BodyType:byte[], Body:<?xml version="1.0"
>>> encoding="UTF-8"
>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>> record
>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>> record title</recordLabel><recordTitle>Unittest record
>>> title</recordTitle><Names><Name><name>DR
>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> What does the tracer say in the 2nd route?
>>>>
>>>> camel:route id="AuditRoute">
>>>>                        <camel:from uri="seda:audit"/>
>>>>                        <camel:bean ref="auditMessageDAO"
>>>> method="audit"/>
>>>>
>>>> eg from seda:audit -> auditMessageDAO
>>>> this is the interesting part
>>>>
>>>> BTW which version of Camel are you using?
>>>>
>>>>
>>>>
>>>> On Wed, Jan 20, 2010 at 11:49 AM, preben <[hidden email]> wrote:
>>>>>
>>>>> Hi Claus
>>>>>
>>>>> Seems that the headers are present even on the wiretap endpoint.
>>>>> :
>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>> from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text) -->
>>>>> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly,
>>>>> Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>> JMSRedelivered=true,
>>>>> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
>>>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>> record
>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>> title</recordTitle><Names><Name><name>DR
>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>
>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>> transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<<
>>>>> Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>> JMSRedelivered=true,
>>>>> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
>>>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>> record
>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>> title</recordTitle><Names><Name><name>DR
>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>
>>>>>
>>>>> Claus Ibsen-2 wrote:
>>>>>>
>>>>>> On Wed, Jan 20, 2010 at 9:52 AM, preben <[hidden email]> wrote:
>>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> I'm trying to create a auditservice using a wiretap.
>>>>>>>
>>>>>>> eg.
>>>>>>>        <camel:route trace="true" id="RapNotificationRoute">
>>>>>>>                        <camel:from
>>>>>>> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>>>>>>>                        <camel:transacted ref="PROPAGATION_REQUIRED"/>
>>>>>>>                        <camel:wireTap uri="seda:audit"/>
>>>>>>>                        <camel:to uri="mock:result"/>
>>>>>>>                </camel:route>
>>>>>>>
>>>>>>>                <camel:route id="AuditRoute">
>>>>>>>                        <camel:from uri="seda:audit"/>
>>>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>>>> method="audit"/>
>>>>>>>                </camel:route>
>>>>>>>
>>>>>>> The auditMessageDAO takes 2 parameters
>>>>>>>
>>>>>>> public void audit(@Body String body, @Headers Map headers)
>>>>>>>
>>>>>>> The body gets bound, but the headers parameter doesn't ??
>>>>>>> Any idear how this is done best ???
>>>>>>>
>>>>>>
>>>>>> Use the tracer to see if the headers are avail when you consume from
>>>>>> the Oracle MQ queue. It may play tricks on you :)
>>>>>> http://camel.apache.org/tracer
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Thanks
>>>>>>> Preben
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>>
>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>> Open Source Integration: http://fusesource.com
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27239795.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27240209.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27241149.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Preben.Asmussen
The auditmessageDAO is not defined in xml but using @Repository annotation and is picked up by Spring douring initializing of the applicationContext.
Is there a issue regarding this ? should it be defined in XML instead (Camel + Spring dependencies)
The funny thing is thoug that the body gets bound with fine xml payload but the header param is missing.


Claus Ibsen-2 wrote
On Wed, Jan 20, 2010 at 1:46 PM, preben <pras@dr.dk> wrote:
>
> Actually I was looking for JMSMessageID like this
> @Header(value="JMSMessageID") String jmsMessageId, but when that didn't work
> i changed it to @Headers Map to see if I get any values.
> The parameter get's bound as null !!

And how is auditMessageDAO defined in the XML file?

Those annotations only work if the Spring bean post processor does it
job and let Camel have a chance later.
There used to be some more weird combos where Spring failed to do so.

It will log a INFO/WARN about bean XXX is illegible for bean post
processing or something like that.

You can always use Exchange or Message as the type and get the data,
but I understand if you want to use a clean POJO without using Camel
API in the method signature.

You can try a simpler example to get the POJO stuff working without
the JMS etc. Then you know that Spring + Camel works as expected.



>
>
> Claus Ibsen-2 wrote:
>>
>> Hi
>>
>> So which headers are you looking for to be in the audit bean?
>> You do not have any custom JMS properties, only the regular JMS headers.
>>
>> And you are saying that Map instance is empty? or is it null?
>>
>>
>>
>> On Wed, Jan 20, 2010 at 12:26 PM, preben <pras@dr.dk> wrote:
>>>
>>> Im using camel v. 2.1.0 Sure the 2nd route says:
>>> [Camel thread 0: seda://audit] 20 jan. 2010 - 12:22:09,858 INFO
>>> org.apache.camel.processor.interceptor.Tracer
>>> [42a5443b-0a62-4477-885f-c6f6c40274b1 >>> (AuditRoute) from(seda://audit)
>>> --> ref:auditMessageDAO method: audit <<< Pattern:InOnly,
>>> Headers:{JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>> JMS_OracleDelay=0,
>>> JMSDeliveryMode=2, JMSRedelivered=true,
>>> JMS_OracleTimestamp=1263986526156,
>>> JMSType=null, JMSCorrelationID=null, JMSXRecvTimestamp=1263986529858,
>>> JMSXState=0, JMSXDeliveryCount=2,
>>> JMSMessageID=ID:7D97CBE346B7CAA2E040650A0A103AC2,
>>> JMSTimestamp=1263986526156, JMSPriority=1, JMSXGroupID=null,
>>> JMS_OracleDeliveryMode=2, JMSXUserID=playliste, JMSExpiration=0,
>>> JMSReplyTo=null}, BodyType:byte[], Body:<?xml version="1.0"
>>> encoding="UTF-8"
>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>> record
>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>> record title</recordLabel><recordTitle>Unittest record
>>> title</recordTitle><Names><Name><name>DR
>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> What does the tracer say in the 2nd route?
>>>>
>>>> camel:route id="AuditRoute">
>>>>                        <camel:from uri="seda:audit"/>
>>>>                        <camel:bean ref="auditMessageDAO"
>>>> method="audit"/>
>>>>
>>>> eg from seda:audit -> auditMessageDAO
>>>> this is the interesting part
>>>>
>>>> BTW which version of Camel are you using?
>>>>
>>>>
>>>>
>>>> On Wed, Jan 20, 2010 at 11:49 AM, preben <pras@dr.dk> wrote:
>>>>>
>>>>> Hi Claus
>>>>>
>>>>> Seems that the headers are present even on the wiretap endpoint.
>>>>> :
>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>> from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text) -->
>>>>> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly,
>>>>> Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>> JMSRedelivered=true,
>>>>> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
>>>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>> record
>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>> title</recordTitle><Names><Name><name>DR
>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>
>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>> transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<<
>>>>> Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>> JMSRedelivered=true,
>>>>> JMSXState=0, JMSType=null, JMSExpiration=0, JMSTimestamp=1263984237832,
>>>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>> record
>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>> title</recordTitle><Names><Name><name>DR
>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>
>>>>>
>>>>> Claus Ibsen-2 wrote:
>>>>>>
>>>>>> On Wed, Jan 20, 2010 at 9:52 AM, preben <pras@dr.dk> wrote:
>>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> I'm trying to create a auditservice using a wiretap.
>>>>>>>
>>>>>>> eg.
>>>>>>>        <camel:route trace="true" id="RapNotificationRoute">
>>>>>>>                        <camel:from
>>>>>>> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>>>>>>>                        <camel:transacted ref="PROPAGATION_REQUIRED"/>
>>>>>>>                        <camel:wireTap uri="seda:audit"/>
>>>>>>>                        <camel:to uri="mock:result"/>
>>>>>>>                </camel:route>
>>>>>>>
>>>>>>>                <camel:route id="AuditRoute">
>>>>>>>                        <camel:from uri="seda:audit"/>
>>>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>>>> method="audit"/>
>>>>>>>                </camel:route>
>>>>>>>
>>>>>>> The auditMessageDAO takes 2 parameters
>>>>>>>
>>>>>>> public void audit(@Body String body, @Headers Map headers)
>>>>>>>
>>>>>>> The body gets bound, but the headers parameter doesn't ??
>>>>>>> Any idear how this is done best ???
>>>>>>>
>>>>>>
>>>>>> Use the tracer to see if the headers are avail when you consume from
>>>>>> the Oracle MQ queue. It may play tricks on you :)
>>>>>> http://camel.apache.org/tracer
>>>>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Thanks
>>>>>>> Preben
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>>
>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>> Open Source Integration: http://fusesource.com
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27239795.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27240209.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27241149.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Claus Ibsen-2
On Wed, Jan 20, 2010 at 2:04 PM, preben <[hidden email]> wrote:
>
> The auditmessageDAO is not defined in xml but using @Repository annotation
> and is picked up by Spring douring initializing of the applicationContext.
> Is there a issue regarding this ? should it be defined in XML instead (Camel
> + Spring dependencies)
> The funny thing is thoug that the body gets bound with fine xml payload but
> the header param is missing.
>

The first parameter will fallback to be the body so I suspect Camel
did not have a chance to leverage its post processor as well to bind
the annotations.

You are much welcome to put together a little zip file with a sample
of this issue. Then create a ticket in JIRA. Then we can take a look
if there is something we can do/improve/fix etc. to get that situation
working as well.

Try defining the bean using <bean/> or the
<context-annotation:driven/> (or what that spring tag is called).

And you are also welcome to try with 2.2-SNAPSOHT whether that should
help. However I dont think we have changed much in that area.

>
>
> Claus Ibsen-2 wrote:
>>
>> On Wed, Jan 20, 2010 at 1:46 PM, preben <[hidden email]> wrote:
>>>
>>> Actually I was looking for JMSMessageID like this
>>> @Header(value="JMSMessageID") String jmsMessageId, but when that didn't
>>> work
>>> i changed it to @Headers Map to see if I get any values.
>>> The parameter get's bound as null !!
>>
>> And how is auditMessageDAO defined in the XML file?
>>
>> Those annotations only work if the Spring bean post processor does it
>> job and let Camel have a chance later.
>> There used to be some more weird combos where Spring failed to do so.
>>
>> It will log a INFO/WARN about bean XXX is illegible for bean post
>> processing or something like that.
>>
>> You can always use Exchange or Message as the type and get the data,
>> but I understand if you want to use a clean POJO without using Camel
>> API in the method signature.
>>
>> You can try a simpler example to get the POJO stuff working without
>> the JMS etc. Then you know that Spring + Camel works as expected.
>>
>>
>>
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> Hi
>>>>
>>>> So which headers are you looking for to be in the audit bean?
>>>> You do not have any custom JMS properties, only the regular JMS headers.
>>>>
>>>> And you are saying that Map instance is empty? or is it null?
>>>>
>>>>
>>>>
>>>> On Wed, Jan 20, 2010 at 12:26 PM, preben <[hidden email]> wrote:
>>>>>
>>>>> Im using camel v. 2.1.0 Sure the 2nd route says:
>>>>> [Camel thread 0: seda://audit] 20 jan. 2010 - 12:22:09,858 INFO
>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>> [42a5443b-0a62-4477-885f-c6f6c40274b1 >>> (AuditRoute)
>>>>> from(seda://audit)
>>>>> --> ref:auditMessageDAO method: audit <<< Pattern:InOnly,
>>>>> Headers:{JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>> JMS_OracleDelay=0,
>>>>> JMSDeliveryMode=2, JMSRedelivered=true,
>>>>> JMS_OracleTimestamp=1263986526156,
>>>>> JMSType=null, JMSCorrelationID=null, JMSXRecvTimestamp=1263986529858,
>>>>> JMSXState=0, JMSXDeliveryCount=2,
>>>>> JMSMessageID=ID:7D97CBE346B7CAA2E040650A0A103AC2,
>>>>> JMSTimestamp=1263986526156, JMSPriority=1, JMSXGroupID=null,
>>>>> JMS_OracleDeliveryMode=2, JMSXUserID=playliste, JMSExpiration=0,
>>>>> JMSReplyTo=null}, BodyType:byte[], Body:<?xml version="1.0"
>>>>> encoding="UTF-8"
>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>> record
>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>> title</recordTitle><Names><Name><name>DR
>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>
>>>>>
>>>>> Claus Ibsen-2 wrote:
>>>>>>
>>>>>> What does the tracer say in the 2nd route?
>>>>>>
>>>>>> camel:route id="AuditRoute">
>>>>>>                        <camel:from uri="seda:audit"/>
>>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>>> method="audit"/>
>>>>>>
>>>>>> eg from seda:audit -> auditMessageDAO
>>>>>> this is the interesting part
>>>>>>
>>>>>> BTW which version of Camel are you using?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Jan 20, 2010 at 11:49 AM, preben <[hidden email]> wrote:
>>>>>>>
>>>>>>> Hi Claus
>>>>>>>
>>>>>>> Seems that the headers are present even on the wiretap endpoint.
>>>>>>> :
>>>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>>>> from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text)
>>>>>>> -->
>>>>>>> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly,
>>>>>>> Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>>>> JMSRedelivered=true,
>>>>>>> JMSXState=0, JMSType=null, JMSExpiration=0,
>>>>>>> JMSTimestamp=1263984237832,
>>>>>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>>>> record
>>>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>>>> title</recordTitle><Names><Name><name>DR
>>>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>>>
>>>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>>>> transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<<
>>>>>>> Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>>>> JMSRedelivered=true,
>>>>>>> JMSXState=0, JMSType=null, JMSExpiration=0,
>>>>>>> JMSTimestamp=1263984237832,
>>>>>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>>>> record
>>>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>>>> title</recordTitle><Names><Name><name>DR
>>>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>>>
>>>>>>>
>>>>>>> Claus Ibsen-2 wrote:
>>>>>>>>
>>>>>>>> On Wed, Jan 20, 2010 at 9:52 AM, preben <[hidden email]> wrote:
>>>>>>>>>
>>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> I'm trying to create a auditservice using a wiretap.
>>>>>>>>>
>>>>>>>>> eg.
>>>>>>>>>        <camel:route trace="true" id="RapNotificationRoute">
>>>>>>>>>                        <camel:from
>>>>>>>>> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>>>>>>>>>                        <camel:transacted
>>>>>>>>> ref="PROPAGATION_REQUIRED"/>
>>>>>>>>>                        <camel:wireTap uri="seda:audit"/>
>>>>>>>>>                        <camel:to uri="mock:result"/>
>>>>>>>>>                </camel:route>
>>>>>>>>>
>>>>>>>>>                <camel:route id="AuditRoute">
>>>>>>>>>                        <camel:from uri="seda:audit"/>
>>>>>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>>>>>> method="audit"/>
>>>>>>>>>                </camel:route>
>>>>>>>>>
>>>>>>>>> The auditMessageDAO takes 2 parameters
>>>>>>>>>
>>>>>>>>> public void audit(@Body String body, @Headers Map headers)
>>>>>>>>>
>>>>>>>>> The body gets bound, but the headers parameter doesn't ??
>>>>>>>>> Any idear how this is done best ???
>>>>>>>>>
>>>>>>>>
>>>>>>>> Use the tracer to see if the headers are avail when you consume from
>>>>>>>> the Oracle MQ queue. It may play tricks on you :)
>>>>>>>> http://camel.apache.org/tracer
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> Preben
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Claus Ibsen
>>>>>>>> Apache Camel Committer
>>>>>>>>
>>>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>>>> Open Source Integration: http://fusesource.com
>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27239795.html
>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>>
>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>> Open Source Integration: http://fusesource.com
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27240209.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27241149.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27241380.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Preben.Asmussen
Thanks for the help.

For now I'll stick to using Exchange directly - this works.
Using camel annotations in combination with Spring seems not to work. I'll try to create a JIRA tomorrow, but I haven't the time to construct a test case. Sorry.

Preben

Claus Ibsen-2 wrote
On Wed, Jan 20, 2010 at 2:04 PM, preben <pras@dr.dk> wrote:
>
> The auditmessageDAO is not defined in xml but using @Repository annotation
> and is picked up by Spring douring initializing of the applicationContext.
> Is there a issue regarding this ? should it be defined in XML instead (Camel
> + Spring dependencies)
> The funny thing is thoug that the body gets bound with fine xml payload but
> the header param is missing.
>

The first parameter will fallback to be the body so I suspect Camel
did not have a chance to leverage its post processor as well to bind
the annotations.

You are much welcome to put together a little zip file with a sample
of this issue. Then create a ticket in JIRA. Then we can take a look
if there is something we can do/improve/fix etc. to get that situation
working as well.

Try defining the bean using <bean/> or the
<context-annotation:driven/> (or what that spring tag is called).

And you are also welcome to try with 2.2-SNAPSOHT whether that should
help. However I dont think we have changed much in that area.

>
>
> Claus Ibsen-2 wrote:
>>
>> On Wed, Jan 20, 2010 at 1:46 PM, preben <pras@dr.dk> wrote:
>>>
>>> Actually I was looking for JMSMessageID like this
>>> @Header(value="JMSMessageID") String jmsMessageId, but when that didn't
>>> work
>>> i changed it to @Headers Map to see if I get any values.
>>> The parameter get's bound as null !!
>>
>> And how is auditMessageDAO defined in the XML file?
>>
>> Those annotations only work if the Spring bean post processor does it
>> job and let Camel have a chance later.
>> There used to be some more weird combos where Spring failed to do so.
>>
>> It will log a INFO/WARN about bean XXX is illegible for bean post
>> processing or something like that.
>>
>> You can always use Exchange or Message as the type and get the data,
>> but I understand if you want to use a clean POJO without using Camel
>> API in the method signature.
>>
>> You can try a simpler example to get the POJO stuff working without
>> the JMS etc. Then you know that Spring + Camel works as expected.
>>
>>
>>
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> Hi
>>>>
>>>> So which headers are you looking for to be in the audit bean?
>>>> You do not have any custom JMS properties, only the regular JMS headers.
>>>>
>>>> And you are saying that Map instance is empty? or is it null?
>>>>
>>>>
>>>>
>>>> On Wed, Jan 20, 2010 at 12:26 PM, preben <pras@dr.dk> wrote:
>>>>>
>>>>> Im using camel v. 2.1.0 Sure the 2nd route says:
>>>>> [Camel thread 0: seda://audit] 20 jan. 2010 - 12:22:09,858 INFO
>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>> [42a5443b-0a62-4477-885f-c6f6c40274b1 >>> (AuditRoute)
>>>>> from(seda://audit)
>>>>> --> ref:auditMessageDAO method: audit <<< Pattern:InOnly,
>>>>> Headers:{JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>> JMS_OracleDelay=0,
>>>>> JMSDeliveryMode=2, JMSRedelivered=true,
>>>>> JMS_OracleTimestamp=1263986526156,
>>>>> JMSType=null, JMSCorrelationID=null, JMSXRecvTimestamp=1263986529858,
>>>>> JMSXState=0, JMSXDeliveryCount=2,
>>>>> JMSMessageID=ID:7D97CBE346B7CAA2E040650A0A103AC2,
>>>>> JMSTimestamp=1263986526156, JMSPriority=1, JMSXGroupID=null,
>>>>> JMS_OracleDeliveryMode=2, JMSXUserID=playliste, JMSExpiration=0,
>>>>> JMSReplyTo=null}, BodyType:byte[], Body:<?xml version="1.0"
>>>>> encoding="UTF-8"
>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>> record
>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>> title</recordTitle><Names><Name><name>DR
>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>
>>>>>
>>>>> Claus Ibsen-2 wrote:
>>>>>>
>>>>>> What does the tracer say in the 2nd route?
>>>>>>
>>>>>> camel:route id="AuditRoute">
>>>>>>                        <camel:from uri="seda:audit"/>
>>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>>> method="audit"/>
>>>>>>
>>>>>> eg from seda:audit -> auditMessageDAO
>>>>>> this is the interesting part
>>>>>>
>>>>>> BTW which version of Camel are you using?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Jan 20, 2010 at 11:49 AM, preben <pras@dr.dk> wrote:
>>>>>>>
>>>>>>> Hi Claus
>>>>>>>
>>>>>>> Seems that the headers are present even on the wiretap endpoint.
>>>>>>> :
>>>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>>>> from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text)
>>>>>>> -->
>>>>>>> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly,
>>>>>>> Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>>>> JMSRedelivered=true,
>>>>>>> JMSXState=0, JMSType=null, JMSExpiration=0,
>>>>>>> JMSTimestamp=1263984237832,
>>>>>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>>>> record
>>>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>>>> title</recordTitle><Names><Name><name>DR
>>>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>>>
>>>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614 INFO
>>>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>>>> transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<<
>>>>>>> Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>>>> JMSRedelivered=true,
>>>>>>> JMSXState=0, JMSType=null, JMSExpiration=0,
>>>>>>> JMSTimestamp=1263984237832,
>>>>>>> JMSXUserID=playliste, JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>>>> record
>>>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>>>> title</recordTitle><Names><Name><name>DR
>>>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>>>
>>>>>>>
>>>>>>> Claus Ibsen-2 wrote:
>>>>>>>>
>>>>>>>> On Wed, Jan 20, 2010 at 9:52 AM, preben <pras@dr.dk> wrote:
>>>>>>>>>
>>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> I'm trying to create a auditservice using a wiretap.
>>>>>>>>>
>>>>>>>>> eg.
>>>>>>>>>        <camel:route trace="true" id="RapNotificationRoute">
>>>>>>>>>                        <camel:from
>>>>>>>>> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>>>>>>>>>                        <camel:transacted
>>>>>>>>> ref="PROPAGATION_REQUIRED"/>
>>>>>>>>>                        <camel:wireTap uri="seda:audit"/>
>>>>>>>>>                        <camel:to uri="mock:result"/>
>>>>>>>>>                </camel:route>
>>>>>>>>>
>>>>>>>>>                <camel:route id="AuditRoute">
>>>>>>>>>                        <camel:from uri="seda:audit"/>
>>>>>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>>>>>> method="audit"/>
>>>>>>>>>                </camel:route>
>>>>>>>>>
>>>>>>>>> The auditMessageDAO takes 2 parameters
>>>>>>>>>
>>>>>>>>> public void audit(@Body String body, @Headers Map headers)
>>>>>>>>>
>>>>>>>>> The body gets bound, but the headers parameter doesn't ??
>>>>>>>>> Any idear how this is done best ???
>>>>>>>>>
>>>>>>>>
>>>>>>>> Use the tracer to see if the headers are avail when you consume from
>>>>>>>> the Oracle MQ queue. It may play tricks on you :)
>>>>>>>> http://camel.apache.org/tracer
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> Preben
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Claus Ibsen
>>>>>>>> Apache Camel Committer
>>>>>>>>
>>>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>>>> Open Source Integration: http://fusesource.com
>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27239795.html
>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>>
>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>> Open Source Integration: http://fusesource.com
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27240209.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27241149.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27241380.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Claus Ibsen-2
On Wed, Jan 20, 2010 at 3:34 PM, preben <[hidden email]> wrote:
>
> Thanks for the help.
>
> For now I'll stick to using Exchange directly - this works.
> Using camel annotations in combination with Spring seems not to work. I'll
> try to create a JIRA tomorrow, but I haven't the time to construct a test
> case. Sorry.
>

That is okay. If no time for a test case then if possible paste the
bean code (remove stuff not wanted in public)
then we got something to use when we got time to track it down.

And or others can help track it down.



> Preben
>
>
> Claus Ibsen-2 wrote:
>>
>> On Wed, Jan 20, 2010 at 2:04 PM, preben <[hidden email]> wrote:
>>>
>>> The auditmessageDAO is not defined in xml but using @Repository
>>> annotation
>>> and is picked up by Spring douring initializing of the
>>> applicationContext.
>>> Is there a issue regarding this ? should it be defined in XML instead
>>> (Camel
>>> + Spring dependencies)
>>> The funny thing is thoug that the body gets bound with fine xml payload
>>> but
>>> the header param is missing.
>>>
>>
>> The first parameter will fallback to be the body so I suspect Camel
>> did not have a chance to leverage its post processor as well to bind
>> the annotations.
>>
>> You are much welcome to put together a little zip file with a sample
>> of this issue. Then create a ticket in JIRA. Then we can take a look
>> if there is something we can do/improve/fix etc. to get that situation
>> working as well.
>>
>> Try defining the bean using <bean/> or the
>> <context-annotation:driven/> (or what that spring tag is called).
>>
>> And you are also welcome to try with 2.2-SNAPSOHT whether that should
>> help. However I dont think we have changed much in that area.
>>
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> On Wed, Jan 20, 2010 at 1:46 PM, preben <[hidden email]> wrote:
>>>>>
>>>>> Actually I was looking for JMSMessageID like this
>>>>> @Header(value="JMSMessageID") String jmsMessageId, but when that didn't
>>>>> work
>>>>> i changed it to @Headers Map to see if I get any values.
>>>>> The parameter get's bound as null !!
>>>>
>>>> And how is auditMessageDAO defined in the XML file?
>>>>
>>>> Those annotations only work if the Spring bean post processor does it
>>>> job and let Camel have a chance later.
>>>> There used to be some more weird combos where Spring failed to do so.
>>>>
>>>> It will log a INFO/WARN about bean XXX is illegible for bean post
>>>> processing or something like that.
>>>>
>>>> You can always use Exchange or Message as the type and get the data,
>>>> but I understand if you want to use a clean POJO without using Camel
>>>> API in the method signature.
>>>>
>>>> You can try a simpler example to get the POJO stuff working without
>>>> the JMS etc. Then you know that Spring + Camel works as expected.
>>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>> Claus Ibsen-2 wrote:
>>>>>>
>>>>>> Hi
>>>>>>
>>>>>> So which headers are you looking for to be in the audit bean?
>>>>>> You do not have any custom JMS properties, only the regular JMS
>>>>>> headers.
>>>>>>
>>>>>> And you are saying that Map instance is empty? or is it null?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Jan 20, 2010 at 12:26 PM, preben <[hidden email]> wrote:
>>>>>>>
>>>>>>> Im using camel v. 2.1.0 Sure the 2nd route says:
>>>>>>> [Camel thread 0: seda://audit] 20 jan. 2010 - 12:22:09,858 INFO
>>>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>>>> [42a5443b-0a62-4477-885f-c6f6c40274b1 >>> (AuditRoute)
>>>>>>> from(seda://audit)
>>>>>>> --> ref:auditMessageDAO method: audit <<< Pattern:InOnly,
>>>>>>> Headers:{JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>>>> JMS_OracleDelay=0,
>>>>>>> JMSDeliveryMode=2, JMSRedelivered=true,
>>>>>>> JMS_OracleTimestamp=1263986526156,
>>>>>>> JMSType=null, JMSCorrelationID=null, JMSXRecvTimestamp=1263986529858,
>>>>>>> JMSXState=0, JMSXDeliveryCount=2,
>>>>>>> JMSMessageID=ID:7D97CBE346B7CAA2E040650A0A103AC2,
>>>>>>> JMSTimestamp=1263986526156, JMSPriority=1, JMSXGroupID=null,
>>>>>>> JMS_OracleDeliveryMode=2, JMSXUserID=playliste, JMSExpiration=0,
>>>>>>> JMSReplyTo=null}, BodyType:byte[], Body:<?xml version="1.0"
>>>>>>> encoding="UTF-8"
>>>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>>>> record
>>>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>>>> title</recordTitle><Names><Name><name>DR
>>>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>>>
>>>>>>>
>>>>>>> Claus Ibsen-2 wrote:
>>>>>>>>
>>>>>>>> What does the tracer say in the 2nd route?
>>>>>>>>
>>>>>>>> camel:route id="AuditRoute">
>>>>>>>>                        <camel:from uri="seda:audit"/>
>>>>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>>>>> method="audit"/>
>>>>>>>>
>>>>>>>> eg from seda:audit -> auditMessageDAO
>>>>>>>> this is the interesting part
>>>>>>>>
>>>>>>>> BTW which version of Camel are you using?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Jan 20, 2010 at 11:49 AM, preben <[hidden email]> wrote:
>>>>>>>>>
>>>>>>>>> Hi Claus
>>>>>>>>>
>>>>>>>>> Seems that the headers are present even on the wiretap endpoint.
>>>>>>>>> :
>>>>>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614
>>>>>>>>> INFO
>>>>>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>>>>>> from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text)
>>>>>>>>> -->
>>>>>>>>> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly,
>>>>>>>>> Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>>>>>> JMSRedelivered=true,
>>>>>>>>> JMSXState=0, JMSType=null, JMSExpiration=0,
>>>>>>>>> JMSTimestamp=1263984237832,
>>>>>>>>> JMSXUserID=playliste,
>>>>>>>>> JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>>>>>> record
>>>>>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>>>>>> title</recordTitle><Names><Name><name>DR
>>>>>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>>>>>
>>>>>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614
>>>>>>>>> INFO
>>>>>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>>>>>> transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<<
>>>>>>>>> Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>>>>>> JMSRedelivered=true,
>>>>>>>>> JMSXState=0, JMSType=null, JMSExpiration=0,
>>>>>>>>> JMSTimestamp=1263984237832,
>>>>>>>>> JMSXUserID=playliste,
>>>>>>>>> JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>>>>>> record
>>>>>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>>>>>> title</recordTitle><Names><Name><name>DR
>>>>>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Claus Ibsen-2 wrote:
>>>>>>>>>>
>>>>>>>>>> On Wed, Jan 20, 2010 at 9:52 AM, preben <[hidden email]> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi
>>>>>>>>>>>
>>>>>>>>>>> I'm trying to create a auditservice using a wiretap.
>>>>>>>>>>>
>>>>>>>>>>> eg.
>>>>>>>>>>>        <camel:route trace="true" id="RapNotificationRoute">
>>>>>>>>>>>                        <camel:from
>>>>>>>>>>> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>>>>>>>>>>>                        <camel:transacted
>>>>>>>>>>> ref="PROPAGATION_REQUIRED"/>
>>>>>>>>>>>                        <camel:wireTap uri="seda:audit"/>
>>>>>>>>>>>                        <camel:to uri="mock:result"/>
>>>>>>>>>>>                </camel:route>
>>>>>>>>>>>
>>>>>>>>>>>                <camel:route id="AuditRoute">
>>>>>>>>>>>                        <camel:from uri="seda:audit"/>
>>>>>>>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>>>>>>>> method="audit"/>
>>>>>>>>>>>                </camel:route>
>>>>>>>>>>>
>>>>>>>>>>> The auditMessageDAO takes 2 parameters
>>>>>>>>>>>
>>>>>>>>>>> public void audit(@Body String body, @Headers Map headers)
>>>>>>>>>>>
>>>>>>>>>>> The body gets bound, but the headers parameter doesn't ??
>>>>>>>>>>> Any idear how this is done best ???
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Use the tracer to see if the headers are avail when you consume
>>>>>>>>>> from
>>>>>>>>>> the Oracle MQ queue. It may play tricks on you :)
>>>>>>>>>> http://camel.apache.org/tracer
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>> Preben
>>>>>>>>>>> --
>>>>>>>>>>> View this message in context:
>>>>>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
>>>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Claus Ibsen
>>>>>>>>>> Apache Camel Committer
>>>>>>>>>>
>>>>>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>>>>>> Open Source Integration: http://fusesource.com
>>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27239795.html
>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Claus Ibsen
>>>>>>>> Apache Camel Committer
>>>>>>>>
>>>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>>>> Open Source Integration: http://fusesource.com
>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27240209.html
>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>>
>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>> Open Source Integration: http://fusesource.com
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27241149.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27241380.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27242661.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Reply | Threaded
Open this post in threaded view
|

Re: wiretap getting header value

Preben.Asmussen
Created jira https://issues.apache.org/activemq/browse/CAMEL-2384
If time allows it I will try and set up a test case to document the problem.
Although I'm using Oracle AQ as jms provider I dont think this is the cause of the problem since all header values seems to be present.

Any chance this will be fixed in 2.2.0 ? Estimated release date availl. ?
 
Claus Ibsen-2 wrote
On Wed, Jan 20, 2010 at 3:34 PM, preben <pras@dr.dk> wrote:
>
> Thanks for the help.
>
> For now I'll stick to using Exchange directly - this works.
> Using camel annotations in combination with Spring seems not to work. I'll
> try to create a JIRA tomorrow, but I haven't the time to construct a test
> case. Sorry.
>

That is okay. If no time for a test case then if possible paste the
bean code (remove stuff not wanted in public)
then we got something to use when we got time to track it down.

And or others can help track it down.



> Preben
>
>
> Claus Ibsen-2 wrote:
>>
>> On Wed, Jan 20, 2010 at 2:04 PM, preben <pras@dr.dk> wrote:
>>>
>>> The auditmessageDAO is not defined in xml but using @Repository
>>> annotation
>>> and is picked up by Spring douring initializing of the
>>> applicationContext.
>>> Is there a issue regarding this ? should it be defined in XML instead
>>> (Camel
>>> + Spring dependencies)
>>> The funny thing is thoug that the body gets bound with fine xml payload
>>> but
>>> the header param is missing.
>>>
>>
>> The first parameter will fallback to be the body so I suspect Camel
>> did not have a chance to leverage its post processor as well to bind
>> the annotations.
>>
>> You are much welcome to put together a little zip file with a sample
>> of this issue. Then create a ticket in JIRA. Then we can take a look
>> if there is something we can do/improve/fix etc. to get that situation
>> working as well.
>>
>> Try defining the bean using <bean/> or the
>> <context-annotation:driven/> (or what that spring tag is called).
>>
>> And you are also welcome to try with 2.2-SNAPSOHT whether that should
>> help. However I dont think we have changed much in that area.
>>
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> On Wed, Jan 20, 2010 at 1:46 PM, preben <pras@dr.dk> wrote:
>>>>>
>>>>> Actually I was looking for JMSMessageID like this
>>>>> @Header(value="JMSMessageID") String jmsMessageId, but when that didn't
>>>>> work
>>>>> i changed it to @Headers Map to see if I get any values.
>>>>> The parameter get's bound as null !!
>>>>
>>>> And how is auditMessageDAO defined in the XML file?
>>>>
>>>> Those annotations only work if the Spring bean post processor does it
>>>> job and let Camel have a chance later.
>>>> There used to be some more weird combos where Spring failed to do so.
>>>>
>>>> It will log a INFO/WARN about bean XXX is illegible for bean post
>>>> processing or something like that.
>>>>
>>>> You can always use Exchange or Message as the type and get the data,
>>>> but I understand if you want to use a clean POJO without using Camel
>>>> API in the method signature.
>>>>
>>>> You can try a simpler example to get the POJO stuff working without
>>>> the JMS etc. Then you know that Spring + Camel works as expected.
>>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>> Claus Ibsen-2 wrote:
>>>>>>
>>>>>> Hi
>>>>>>
>>>>>> So which headers are you looking for to be in the audit bean?
>>>>>> You do not have any custom JMS properties, only the regular JMS
>>>>>> headers.
>>>>>>
>>>>>> And you are saying that Map instance is empty? or is it null?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Jan 20, 2010 at 12:26 PM, preben <pras@dr.dk> wrote:
>>>>>>>
>>>>>>> Im using camel v. 2.1.0 Sure the 2nd route says:
>>>>>>> [Camel thread 0: seda://audit] 20 jan. 2010 - 12:22:09,858 INFO
>>>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>>>> [42a5443b-0a62-4477-885f-c6f6c40274b1 >>> (AuditRoute)
>>>>>>> from(seda://audit)
>>>>>>> --> ref:auditMessageDAO method: audit <<< Pattern:InOnly,
>>>>>>> Headers:{JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>>>> JMS_OracleDelay=0,
>>>>>>> JMSDeliveryMode=2, JMSRedelivered=true,
>>>>>>> JMS_OracleTimestamp=1263986526156,
>>>>>>> JMSType=null, JMSCorrelationID=null, JMSXRecvTimestamp=1263986529858,
>>>>>>> JMSXState=0, JMSXDeliveryCount=2,
>>>>>>> JMSMessageID=ID:7D97CBE346B7CAA2E040650A0A103AC2,
>>>>>>> JMSTimestamp=1263986526156, JMSPriority=1, JMSXGroupID=null,
>>>>>>> JMS_OracleDeliveryMode=2, JMSXUserID=playliste, JMSExpiration=0,
>>>>>>> JMSReplyTo=null}, BodyType:byte[], Body:<?xml version="1.0"
>>>>>>> encoding="UTF-8"
>>>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>>>> record
>>>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>>>> title</recordTitle><Names><Name><name>DR
>>>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>>>
>>>>>>>
>>>>>>> Claus Ibsen-2 wrote:
>>>>>>>>
>>>>>>>> What does the tracer say in the 2nd route?
>>>>>>>>
>>>>>>>> camel:route id="AuditRoute">
>>>>>>>>                        <camel:from uri="seda:audit"/>
>>>>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>>>>> method="audit"/>
>>>>>>>>
>>>>>>>> eg from seda:audit -> auditMessageDAO
>>>>>>>> this is the interesting part
>>>>>>>>
>>>>>>>> BTW which version of Camel are you using?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Jan 20, 2010 at 11:49 AM, preben <pras@dr.dk> wrote:
>>>>>>>>>
>>>>>>>>> Hi Claus
>>>>>>>>>
>>>>>>>>> Seems that the headers are present even on the wiretap endpoint.
>>>>>>>>> :
>>>>>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614
>>>>>>>>> INFO
>>>>>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>>>>>> from(oracleQueue://queue:FURTHERELEMENTS_TEST?jmsMessageType=Text)
>>>>>>>>> -->
>>>>>>>>> transacted[ref:PROPAGATION_REQUIRED] <<< Pattern:InOnly,
>>>>>>>>> Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>>>>>> JMSRedelivered=true,
>>>>>>>>> JMSXState=0, JMSType=null, JMSExpiration=0,
>>>>>>>>> JMSTimestamp=1263984237832,
>>>>>>>>> JMSXUserID=playliste,
>>>>>>>>> JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>>>>>> record
>>>>>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>>>>>> title</recordTitle><Names><Name><name>DR
>>>>>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>>>>>
>>>>>>>>> [DefaultMessageListenerContainer-1] 20 jan. 2010 - 11:44:01,614
>>>>>>>>> INFO
>>>>>>>>> org.apache.camel.processor.interceptor.Tracer
>>>>>>>>> [ID:7D97437F084F8E83E040650A0A1027E5 >>> (RapNotificationRoute)
>>>>>>>>> transacted[ref:PROPAGATION_REQUIRED] --> wireTap(seda://audit) <<<
>>>>>>>>> Pattern:InOnly, Headers:{JMSXGroupID=null, JMSReplyTo=null,
>>>>>>>>> JMSMessageID=ID:7D97437F084F8E83E040650A0A1027E5, JMSPriority=1,
>>>>>>>>> JMSCorrelationID=null, JMSXRecvTimestamp=1263984241614,
>>>>>>>>> JMSRedelivered=true,
>>>>>>>>> JMSXState=0, JMSType=null, JMSExpiration=0,
>>>>>>>>> JMSTimestamp=1263984237832,
>>>>>>>>> JMSXUserID=playliste,
>>>>>>>>> JMSDestination=PLAYLISTE.FURTHERELEMENTS_TEST,
>>>>>>>>> JMS_OracleTimestamp=1263984237832, JMSDeliveryMode=2,
>>>>>>>>> JMS_OracleDeliveryMode=2, JMS_OracleDelay=0, JMSXDeliveryCount=2},
>>>>>>>>> BodyType:byte[], Body:<?xml version="1.0" encoding="UTF-8"
>>>>>>>>> standalone="yes"?><Publication><sourceURL>whatson/133258748813</sourceURL><Element><dataProvider>M</dataProvider><relStartTime>0</relStartTime><duration>1340</duration><title>Unittest
>>>>>>>>> record
>>>>>>>>> title</title><countryOrigin>31</countryOrigin><countryConnection>0</countryConnection><musaNo>123609030081111</musaNo><side>1</side><cut>1</cut><partcut>-1</partcut><musaComplete>J</musaComplete><drProduction>J</drProduction><recordingDate>2009-08-20</recordingDate><recordLabel>Unittest
>>>>>>>>> record title</recordLabel><recordTitle>Unittest record
>>>>>>>>> title</recordTitle><Names><Name><name>DR
>>>>>>>>> SymfoniOrkestret</name><country>7</country><role>Gruppe/Solist</role><salesArtist>N</salesArtist></Name><Name><name>Thomas
>>>>>>>>> Dausgaard</name><country>7</country><role>Gruppe/Solist</role><salesArtist>J</salesArtist></Name><Name><name>César
>>>>>>>>> Franck</name><country>10</country><role>Komponist</role><salesArtist>N</salesArtist></Name></Names></Element></Publication>]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Claus Ibsen-2 wrote:
>>>>>>>>>>
>>>>>>>>>> On Wed, Jan 20, 2010 at 9:52 AM, preben <pras@dr.dk> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi
>>>>>>>>>>>
>>>>>>>>>>> I'm trying to create a auditservice using a wiretap.
>>>>>>>>>>>
>>>>>>>>>>> eg.
>>>>>>>>>>>        <camel:route trace="true" id="RapNotificationRoute">
>>>>>>>>>>>                        <camel:from
>>>>>>>>>>> uri="oracleQueue:queue:FURTHERELEMENTS_TEST?jmsMessageType=Text"/>
>>>>>>>>>>>                        <camel:transacted
>>>>>>>>>>> ref="PROPAGATION_REQUIRED"/>
>>>>>>>>>>>                        <camel:wireTap uri="seda:audit"/>
>>>>>>>>>>>                        <camel:to uri="mock:result"/>
>>>>>>>>>>>                </camel:route>
>>>>>>>>>>>
>>>>>>>>>>>                <camel:route id="AuditRoute">
>>>>>>>>>>>                        <camel:from uri="seda:audit"/>
>>>>>>>>>>>                        <camel:bean ref="auditMessageDAO"
>>>>>>>>>>> method="audit"/>
>>>>>>>>>>>                </camel:route>
>>>>>>>>>>>
>>>>>>>>>>> The auditMessageDAO takes 2 parameters
>>>>>>>>>>>
>>>>>>>>>>> public void audit(@Body String body, @Headers Map headers)
>>>>>>>>>>>
>>>>>>>>>>> The body gets bound, but the headers parameter doesn't ??
>>>>>>>>>>> Any idear how this is done best ???
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Use the tracer to see if the headers are avail when you consume
>>>>>>>>>> from
>>>>>>>>>> the Oracle MQ queue. It may play tricks on you :)
>>>>>>>>>> http://camel.apache.org/tracer
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>> Preben
>>>>>>>>>>> --
>>>>>>>>>>> View this message in context:
>>>>>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27238444.html
>>>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Claus Ibsen
>>>>>>>>>> Apache Camel Committer
>>>>>>>>>>
>>>>>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>>>>>> Open Source Integration: http://fusesource.com
>>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27239795.html
>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Claus Ibsen
>>>>>>>> Apache Camel Committer
>>>>>>>>
>>>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>>>> Open Source Integration: http://fusesource.com
>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27240209.html
>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>>
>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>> Open Source Integration: http://fusesource.com
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27241149.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/wiretap-getting-header-value-tp27238444p27241380.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/wiretap-getting-header-value-tp27238444p27242661.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



--
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus