See the JMS wiki page about what types is allowed to use according to
the JMS spec.
Especially JMS headers is very limited what you can use/send.

So instead of using a object such as MessageHeader, then use a valid
type such as String or primitive type.
http://camel.apache.org/jms


On Wed, Jan 4, 2012 at 3:17 PM, pitfab <pfabri1...@msn.com> wrote:
> Hello, i'm testing an application that sends messages through some routes
> defined in the camel-context as it follow:
>
>
>               <camelContext id="camel"
> xmlns="http://camel.apache.org/schema/spring";>
>
>
>
>                <endpoint id="message-inTo-filter"
> uri="lobby-jms:queue:lobby-filtered.queue" />
>                <endpoint id="message-outTo-worker"
>                        
> uri="lobby-jms:queue:lobby-event-worker.queue?concurrentConsumers=5" />
>
>                <route>
>                        <from uri="message-inTo-filter" />
>                        <filter>
>                                <simple>${header.headerEvent} == 'MTT'</simple>
>
>
>                                *<to uri="mock:result" />*
>                        </filter>
>
>                </route>
>
> and here is the class that sends the messages:
> @Test
>        public void testRoutes() throws Exception {
>
>            msgHeader = new MessageHeader ("headerEvent", "MTT");
>            msgHeader2 = new MessageHeader("headerEvent", "CASH");
>            msgBody = new MessageBody ("body");
>            mBM = MessageBrokerManagerImpl.getInstance(prop);
>            mBM.startRoutingEngine();
>
>            for(int i = 0; i<50;i++){
>                if(i < 25){
>                        
> mBM.sendHeaderAndBodyToEndPoint("message-inTo-filter",msgBody ,
> msgHeader);
>
>                }else{
>
>                        
> mBM.sendHeaderAndBodyToEndPoint("message-inTo-filter",msgBody ,
> msgHeader2);
>                }
>            }
> the problem is that when i set the MOCK component as endpoint i assert that
> it should receive 25 msg but it just receive half(13). no track of the
> others.
> it's strange because if i change the IF like this --->
>              for(int i = 0; i<50;i++){
>
>                if(i%2 ==0 ){
>                        
> mBM.sendHeaderAndBodyToEndPoint("message-inTo-filter",msgBody ,
> msgHeader);
>
>                }............
>
> the mock receive all the messages.
>
> The last thing i noticed is that if i set as endpoint an ActiveMQ queue it
> works anyway.(no matter the IF).
>
> Sorry if it's not clear..but i would really appreciate any of your suggest.
>
> Thank you.
> Fabrizio.
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/MOCK-Problem-it-gets-half-of-the-messages-it-suppose-to-receive-tp5119702p5119702.html
> Sent from the Camel Development mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
FuseSource
Email: cib...@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Reply via email to