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