camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Wolf <cwolf.a...@gmail.com>
Subject Cannot get filter() to work with "mandatoryBodyAs"
Date Tue, 11 Jun 2013 14:12:30 GMT
I want to impose a filter such that only messages whose body is of
type RemoteFile get through,
So per the documentation:

http://camel.apache.org/message-filter.html
http://camel.apache.org/predicate.html
http://camel.apache.org/simple.html

I have:

.filter(simple("${mandatoryBodyAs(RemoteFile.class)}"))

But I get:

org.apache.camel.CamelExecutionException: Exception occurred during
execution on the exchange: Exchange[Message: {}]
	at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1332)
	at org.apache.camel.builder.ExpressionBuilder$33.evaluate(ExpressionBuilder.java:781)
	at org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:36)
	at org.apache.camel.support.ExpressionSupport.matches(ExpressionSupport.java:32)
	at org.apache.camel.util.ExpressionToPredicateAdapter.matches(ExpressionToPredicateAdapter.java:32)
	at org.apache.camel.builder.SimpleBuilder.matches(SimpleBuilder.java:75)
	at org.apache.camel.processor.FilterProcessor.process(FilterProcessor.java:47)
[....]
Caused by: java.lang.ClassNotFoundException: RemoteFile.class
	at org.apache.camel.impl.DefaultClassResolver.resolveMandatoryClass(DefaultClassResolver.java:52)
	at org.apache.camel.builder.ExpressionBuilder$33.evaluate(ExpressionBuilder.java:779)
	... 67 more

...even though I imported RemoteFile.  So then I tried:

.filter(simple("${mandatoryBodyAs(org.apache.camel.component.file.remote.RemoteFile.class)}"))

and I get the same ClassNotFoundException, but with the full classname.

How can I filter messages, such that only messages whose in-body is
non-null and of a certain type get through?

Thanks,

Chris

Mime
View raw message