Hi,
I’m trying to get processor closures to work as described on:
http://camel.apache.org/groovy-dsl.html
But when I put the code below in a groovy file, it gives an error.
Should this work?
Kind regards,
Remco Schoen
The error:
groovy.lang.MissingMethodException: No signature of method:
simpletest$1$_configure_closure1.doCall() is applicable for argument types:
(org.apache.camel.impl.DefaultExchange, java.lang.Class) values: , ...]
Possible solutions: doCall(), doCall(java.lang.Object), findAll(), findAll()
at
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:286)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
at groovy.lang.Closure.call(Closure.java:414)
at
org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54)
at
org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124)
at com.sun.proxy.$Proxy11.evaluate(Unknown Source)
at
org.apache.camel.processor.SetPropertyProcessor.process(SetPropertyProcessor.java:51)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:541)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:198)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:120)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:198)
at
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:197)
at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:79)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
The script:
@Grab('org.apache.camel:camel-core:2.19.1')
@Grab('org.slf4j:slf4j-simple:1.6.6')
import org.apache.camel.*
import org.apache.camel.impl.*
import org.apache.camel.builder.*
def camelContext = new DefaultCamelContext()
camelContext.addRoutes(new RouteBuilder() {
def void configure() {
from("timer://jdkTimer?period=3000")
.to("log://camelLogger?level=INFO")
.setProperty('henk') { 'aaa' }
}
})
camelContext.start()
addShutdownHook{ camelContext.stop() }
synchronized(this){ this.wait() }