hi, thanks a lot, adding the constructor did the trick.
Best regards, Bernd. On Di, 2010-06-22 at 09:24 +0200, Claus Ibsen wrote: > On Mon, Jun 21, 2010 at 6:08 PM, Bernd Schuller > <b.schul...@fz-juelich.de> wrote: > > > > Hi, > > > > I try to setup a Camel (version 2.3.0) route involving custom components > > using Spring. My Spring xml looks like this: > > > > <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" > > > > > <route> > > <from uri="direct://x"/> > > <to uri="foo://x"/> > > </route> > > > > </camelContext> > > > > where "foo" is referring to a custom component which is auto-registered > > using the META-INF/services... approach. The custom component is rather > > simple and basically just extends DefaultComponent by creating the correct > > type of endpoint. > > > > You custom endpoint may not return the CamelContext instance when the > getCamelContext method is invoked on it. > So check your custom endpoint code. > > Usually the constructor of the endpoint invokes super with the uri and > the component > > public CustomEndpoint(final String endpointUri, final Component > component) { > super(endpointUri, component); > } > > > > > When starting the context I get an exception [1] saying that the > > "camelContext > > must be specified". With a default component (say, "mock") things are > > working. > > > > What could I be missing? > > > > Thanks in advance for your help, and best regards, > > Bernd. > > > > > > > > [1] stack trace: > > > > org.apache.camel.RuntimeCamelException: > > org.apache.camel.FailedToCreateRouteException: Failed to create route route1 > > at: >>> To[foo://x] <<< in route: Route[[From[direct://x]] -> [To[foo://x > > because of camelContext must be specified > > at > > org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1111) > > at > > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:103) > > at > > org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:665) > > at > > org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78) > > at > > org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49) > > at > > org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76) > > at > > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274) > > at > > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736) > > at > > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:383) > > at > > org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140) > > at > > org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84) > > at > > wisnetgrid.adapter.connectors.unicore.TestSpringConfig.test1(TestSpringConfig.java:28) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) > > at java.lang.reflect.Method.invoke(Method.java:599) > > at junit.framework.TestCase.runTest(TestCase.java:154) > > at junit.framework.TestCase.runBare(TestCase.java:127) > > at junit.framework.TestResult$1.protect(TestResult.java:106) > > at junit.framework.TestResult.runProtected(TestResult.java:124) > > at junit.framework.TestResult.run(TestResult.java:109) > > at junit.framework.TestCase.run(TestCase.java:118) > > at junit.framework.TestSuite.runTest(TestSuite.java:208) > > at junit.framework.TestSuite.run(TestSuite.java:203) > > at > > org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) > > at > > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) > > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) > > Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create > > route route1 at: >>> To[foo://x] <<< in route: Route[[From[direct://x]] -> > > [To[foo://x because of camelContext must be specified > > at > > org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:720) > > at > > org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:138) > > at > > org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:545) > > at > > org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1209) > > at > > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1107) > > at > > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1037) > > at > > org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:164) > > at > > org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:56) > > at > > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:912) > > at > > org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:203) > > at > > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:101) > > ... 28 more > > Caused by: java.lang.IllegalArgumentException: camelContext must be > > specified > > at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:260) > > at > > org.apache.camel.processor.SendProcessor.<init>(SendProcessor.java:51) > > at > > org.apache.camel.processor.SendProcessor.<init>(SendProcessor.java:55) > > at > > org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:58) > > at > > org.apache.camel.model.ToDefinition.createProcessor(ToDefinition.java:91) > > at > > org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:365) > > at > > org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:161) > > at > > org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:717) > > ... 38 more > > > > -- > > View this message in context: > > http://camel.465427.n5.nabble.com/Spring-route-config-involving-custom-components-tp510448p510448.html > > Sent from the Camel - Users mailing list archive at Nabble.com. > > > > > -- Dr. Bernd Schuller Distributed Systems and Grid Computing Juelich Supercomputing Centre, http://www.fz-juelich.de/jsc Phone: +49 246161-8736 (fax -8556) Personal blog: www.jroller.com/page/gridhaus ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDirig Dr. Karl Eugen Huthmacher Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender), Dr. Ulrich Krafft (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, Prof. Dr. Sebastian M. Schmidt ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------