I am just starting with quartz-camel. Toying with a small project, as
I need the stateful capability.
public class DataBaseSyncRouteBuilder extends RouteBuilder {
@Override
public void configure() throws Exception {
from("quartz://sync/myTimer").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
System.out.println("One second timer...");
}
});
}
}
This is generating this error:
[.db.integration.MainApp.main()] SpringCamelContext INFO
Apache Camel 2.15.1 (CamelContext: camel5) is shutdown in 0.046
seconds
[WARNING]
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.camel.FailedToStartRouteException: Failed to
start route route2 because of Multiple consumers for the same endpoint
is not allowed: Endpoint[quartz://sync/myTimer]
at
org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers(DefaultCamelContext.java:3142)
at
org.apache.camel.impl.DefaultCamelContext.doStartRouteConsumers(DefaultCamelContext.java:3099)
at
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3029)
at
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3042)
at
org.apache.camel.impl.DefaultCamelContext.startRouteService(DefaultCamelContext.java:2919)
at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:843)
at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2895)
at
org.apache.camel.impl.DefaultCamelContext.addRouteDefinitions(DefaultCamelContext.java:775)
at
org.apache.camel.builder.RouteBuilder.populateRoutes(RouteBuilder.java:397)
at
org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:311)
at
org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:731)
at
org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:728)
at
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2486)
at
org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:728)
at
org.apache.camel.main.MainSupport.postProcessCamelContext(MainSupport.java:476)
at
org.apache.camel.main.MainSupport.postProcessContext(MainSupport.java:405)
at org.apache.camel.spring.Main.doStart(Main.java:171)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.main.MainSupport.run(MainSupport.java:150)
at org.apache.camel.main.MainSupport.run(MainSupport.java:354)
Chaging the URL to use quartz2 :
from("quartz2://sync/myTimer").process(new Processor() {
Is causing this error:
[WARNING]
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to
create route route2: Route(route2)[[From[quartz2://sync/myTimer]] ->
[process[Pro... because of Failed to resolve endpoint:
quartz2://sync/myTimer due to: Trigger key sync.myTimer is already in
us$ by Endpoint[quartz2://sync/myTimer]
at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:190)
at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:841)
at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2895)
at
org.apache.camel.impl.DefaultCamelContext.addRouteDefinitions(DefaultCamelContext.java:775)
at
org.apache.camel.builder.RouteBuilder.populateRoutes(RouteBuilder.java:397)
at
org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:311)
at
org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:731)
at
org.apache.camel.impl.DefaultCamelContext$1.call(DefaultCamelContext.java:728)
at
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2486)
at
org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:728)
at
org.apache.camel.main.MainSupport.postProcessCamelContext(MainSupport.java:476)
at
org.apache.camel.main.MainSupport.postProcessContext(MainSupport.java:405)
at org.apache.camel.spring.Main.doStart(Main.java:171)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.main.MainSupport.run(MainSupport.java:150)
at org.apache.camel.main.MainSupport.run(MainSupport.java:354)
...
Caused by: java.lang.IllegalArgumentException: Trigger key
sync.myTimer is already in use by Endpoint[quartz2://sync/myTimer]
at
org.apache.camel.component.quartz2.QuartzEndpoint.ensureNoDupTriggerKey(QuartzEndpoint.java:341)
at
org.apache.camel.component.quartz2.QuartzEndpoint.addJobInScheduler(QuartzEndpoint.java:275)
at
org.apache.camel.component.quartz2.QuartzEndpoint.doStart(QuartzEndpoint.java:235)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at
org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:2869)
at
org.apache.camel.impl.DefaultCamelContext.doAddService(DefaultCamelContext.java:1097)
at
org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:1058)
at
org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:1054)
at
org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:574)
... 30 more
Why am I getting an error complaining about the EndPint being in use ??
Thank you.