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

Reply via email to