2013-02-21 8 views
1

На моем верблюде RouteConfig.java Я не могу подключиться к базе данных mongo. Я получаю следующее исключение: Вызвано: org.apache.camel.NoSuchBeanException: в реестре не найдено ни одного компонента: myDb типа: com.mongodb.Mongo at org.apache.camel.util.CamelContextHelper.mandatoryLookup (CamelContextHelper.java:130) на org.apache.camel.component.mongodb.MongoDbComponent.createEndpoint (MongoDbComponent.java:43) на org.apache.camel.impl.DefaultComponent.createEndpoint (DefaultComponent.java:91) в org.apache.camel.impl.DefaultCamelContext.getEndpoint (DefaultCamelContext.java:461) ... 42 болееНевозможно подключиться к mongodb от camel

RouteConfig.java из ("JMS: очереди: Test"). боба (новый SomeBean()) .to ("mongodb: mydb = полеты & collection = билеты & operation = insert ");

верблюжьей context.xml

Любая помощь приветствуется

Thanks Lokesh

ответ

0

Вам нужно настроить MongoDB в виде bean в реестре. Если вы используете Spring, то его просто

<bean id="mongodb" class=...> 

И если вы используете Java, то вам нужно добавить, что в одной из реализаций Camel реестра, таких как JndiRegistry или SimpleRegistry.

Если у вас есть книга «Верблюд в действии», см. Главу 4, раздел 4.3, которая охватывает реестры верблюдов.

+0

У меня очень странная ситуация, подобная этой. bean находится в контексте (в #configure, когда я регистрирую this.getContext(). getRegistry(). lookupByName ("myMongoDb"), объект есть ... но маршрут не может быть создан из-за 'No bean can можно найти в реестре для ... ' – redben

1

Будьте осторожны, если вы используете mongodb с версией> = 3. Вы должны использовать класс com.mongodb.MongoClient вместо com.mongodb.Mongo в определении вашего компонента.