I found my mistake Here is the good syntax :
<camel:ognl>request.body.requestType = 'OINP'</camel:ognl> and not <camel:ognl>exchange.body.request.requestType = 'OINP'</camel:ognl> Charles Moulliard Senior Enterprise Architect Apache Camel Committer ***************************** blog : http://cmoulliard.blogspot.com On Thu, Jun 11, 2009 at 3:01 PM, Charles Moulliard <[email protected]>wrote: > I have the following error : > > 14:58:29,000 | ERROR | tenerContainer-2 | EndpointMessageListener > | rg.apache.camel.processor.Logger 207 | ognl.NoSuchPropertyException: > org.apache.camel.component.jms.JmsExchange.body > org.apache.camel.ExpressionEvaluationException: > ognl.NoSuchPropertyException: > org.apache.camel.component.jms.JmsExchange.body > at > org.apache.camel.language.ognl.OgnlExpression.evaluate(OgnlExpression.java:61) > at > org.apache.camel.impl.ExpressionSupport.matches(ExpressionSupport.java:32) > at > org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:48) > at > org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:52) > at > org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) > at > org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) > at > org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:114) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61) > at > org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:52) > at > org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:147) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:74) > at > org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54) > at > org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) > at > org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:81) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451) > at > org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) > at > org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:881) > at java.lang.Thread.run(Thread.java:619) > Caused by: ognl.NoSuchPropertyException: > org.apache.camel.component.jms.JmsExchange.body > at > ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:151) > at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2210) > at ognl.ASTProperty.getValueBody(ASTProperty.java:114) > at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212) > at ognl.SimpleNode.getValue(SimpleNode.java:258) > at ognl.ASTChain.setValueBody(ASTChain.java:222) > at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220) > at ognl.SimpleNode.setValue(SimpleNode.java:301) > at ognl.ASTAssign.getValueBody(ASTAssign.java:53) > at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212) > at ognl.SimpleNode.getValue(SimpleNode.java:258) > at ognl.Ognl.getValue(Ognl.java:494) > at ognl.Ognl.getValue(Ognl.java:458) > at > org.apache.camel.language.ognl.OgnlExpression.evaluate(OgnlExpression.java:58) > ... 21 more > > Is it related to a bad syntax : > > <camel:route> > <camel:from ref="queueRequestAcceptedEndpoint" /> > <camel:convertBodyTo > type="com.xpectis.x3s.platform.model.Request" /> > <camel:choice> > <camel:when> > <camel:ognl>exchange.body.request.requestType = > 'OINP'</camel:ognl> > > Regards, > > Charles Moulliard > Senior Enterprise Architect > Apache Camel Committer > > ***************************** > blog : http://cmoulliard.blogspot.com > > > On Thu, Jun 11, 2009 at 2:42 PM, Charles Moulliard > <[email protected]>wrote: > >> I will test OGNL to have access to the setters fields of the object placed >> in the body's exchange. >> >> Charles Moulliard >> Senior Enterprise Architect >> Apache Camel Committer >> >> ***************************** >> blog : http://cmoulliard.blogspot.com >> >> >> On Thu, Jun 11, 2009 at 1:53 PM, Claus Ibsen <[email protected]>wrote: >> >>> On Thu, Jun 11, 2009 at 1:49 PM, Charles Moulliard<[email protected]> >>> wrote: >>> > Hi, >>> > >>> > Can we have access to the content of the body using simple language ? >>> > >>> > eg. I have put a Request object in the body of my message and I would >>> like >>> > to test one of its property : author >>> > >>> > <camel:simple>${in.body.request.author} == 'camel'</camel:simple> >>> No that will not happen. >>> >>> The simple is not a real language but was mainly added for Spring XML >>> routing as you dont have >>> a real language in the XML to use and that it could help with 75%+ of >>> the use cases. >>> For instance for some predicate tests in a content based router or the >>> likes. >>> >>> But it cannot invoke methods based on a graph notation. Camel have >>> plenty of other languages >>> that can do this: OGNL, Mvel, EL, Groovy, and most of all them >>> http://camel.apache.org/languages.html >>> >>> So pick one and you should be good to go. >>> >>> >>> >>> >>> > >>> > Regards, >>> > >>> > Charles Moulliard >>> > Senior Enterprise Architect >>> > Apache Camel Committer >>> > >>> > ***************************** >>> > blog : http://cmoulliard.blogspot.com >>> > >>> >>> >>> >>> -- >>> Claus Ibsen >>> Apache Camel Committer >>> >>> Open Source Integration: http://fusesource.com >>> Blog: http://davsclaus.blogspot.com/ >>> Twitter: http://twitter.com/davsclaus >>> >> >> >
