Hi Ah yeah I am pretty sure you are not the only one who went down wrong with var/val/def in Scala.
On Thu, May 16, 2013 at 12:09 AM, Sven Richter <sver...@googlemail.com> wrote: > 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 -- Claus Ibsen ----------------- www.camelone.org: The open source integration conference. Red Hat, Inc. FuseSource is now part of Red Hat Email: cib...@redhat.com Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen