Well, like i said i am fairly new, instead of using val for variables i used "def", which is a very stupid mistake. This code works: val reg = new SimpleRegistry() val connectionBean = new Mongo("localhost", 27017) reg.put("myConnection", connectionBean) val camelContext = new DefaultCamelContext(reg) camelContext.addRoutes(new RssRouteBuilder) camelContext.start
Best Regards, Sven On Mon, May 13, 2013 at 4:40 PM, Sven Richter <sver...@googlemail.com> wrote: > Hi, > > i am fairly new to camel and scala and try to get the hang of it. For > this i want to write a small scala application which takes some input > and writes it into a mongodb database. > Looking at the camel-mongodb documentation i see i have to define a > Mongo bean somewhere in my application so that camel can connect to > it. This is my code which tries to achieve this: > // application > def createDefaultContextJndiRegistry(): DefaultCamelContext = { > def reg = new JndiRegistry(new JndiContext()) > def connectionBean = new Mongo("localhost", 27017) > reg.bind("myConnection", connectionBean) > def context = new DefaultCamelContext(reg) > > context > } > > camelContext.addRoutes(new RssRouteBuilder) > camelContext.start > > //rssRouteBuilder > class RssRouteBuilder() extends RouteBuilder{ > def configure(){ > > from("direct:insert").to("log:de.sveri.talk.rss?level=DEBUG").to("mongodb:myConnection?database=talk&collection=rss&operation=insert") > } > } > > When i execute that code i get an error message [1] saying that it > cannot find "myConnection". So i guess i dont use the JndiRegistry in > the right way. I also tried to use the SimpleRegistry, but that threw > the same error. > So my question is basically how to use the Registry and camel-mongodb > when i dont use spring. > > Best Regards, > Sven > > [1] > Exception in thread "main" > org.apache.camel.FailedToCreateRouteException: Failed to create route > route2 at: >>> > To[mongodb:myConnection?database=talk&collection=rss&operation=insert] > <<< in route: Route(route2)[[From[direct:insert]] -> > [To[log:de.sveri.talk... because of Failed to resolve endpoint: > mongodb://myConnection?collection=rss&database=talk&operation=insert > due to: No bean could be found in the registry for: myConnection of > type: com.mongodb.Mongo > at > org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:883) > at > org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:176) > at > org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:750) > at > org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1829) > at > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1609) > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1478) > at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1446) > at de.sveri.talk.Server$delayedInit$body.apply(Server.scala:61) > at scala.Function0$class.apply$mcV$sp(Function0.scala:40) > at > scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) > at scala.App$$anonfun$main$1.apply(App.scala:71) > at scala.App$$anonfun$main$1.apply(App.scala:71) > at scala.collection.immutable.List.foreach(List.scala:318) > at > scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32) > at scala.App$class.main(App.scala:71) > at de.sveri.talk.Server$.main(Server.scala:11) > at de.sveri.talk.Server.main(Server.scala) > Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to > resolve endpoint: > mongodb://myConnection?collection=rss&database=talk&operation=insert > due to: No bean could be found in the registry for: myConnection of > type: com.mongodb.Mongo > at > org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:508) > at > org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:62) > at > org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:191) > at > org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:108) > at > org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:114) > at > org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:61) > at > org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:55) > at > org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:479) > at > org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:197) > at > org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:880) > ... 17 more > Caused by: org.apache.camel.NoSuchBeanException: No bean could be > found in the registry for: myConnection of type: com.mongodb.Mongo > at > org.apache.camel.util.CamelContextHelper.mandatoryLookup(CamelContextHelper.java:142) > at > org.apache.camel.component.mongodb.MongoDbComponent.createEndpoint(MongoDbComponent.java:43) > at > org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:119) > at > org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:488) > ... 26 more