You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by GitBox <gi...@apache.org> on 2022/10/10 13:38:42 UTC
[GitHub] [camel-karavan] Asraf-Uddin-Ahmed commented on issue #488: Need a sample code for MongoDB integration
Asraf-Uddin-Ahmed commented on issue #488:
URL: https://github.com/apache/camel-karavan/issues/488#issuecomment-1273327176
I have prepared the following script:
```
apiVersion: camel.apache.org/v1
kind: Integration
metadata:
name: dump-db-collections-to-avro-files
spec:
flows:
- route:
from:
uri: timer:mongo-timer
steps:
- toD:
uri: >-
mongodb:local-mongodb?hosts=localhost:27017&username=username%40email.com&password=pwd&database=staging&collection=Projects&operation=getDbStats
- log:
message: 'dumpMongoData: ${body}'
parameters:
period: '5000'
id: dumpMongoData
- beans:
- name: local-mongodb
type: "#class:org.apache.camel.component.mongodb.MongoDbComponent"
```
Here I am getting the following exception for this:
> Error processing exchange. Exchange[3839ECFFF76BA3F-0000000000000000]. Caused by: [org.apache.camel.ResolveEndpointFailedException - Failed to resolve endpoint: mongodb://local-mongodb?collection=Projects&database=staging&hosts=localhost%3A27017&operation=getDbStats&password=xxxxxx&username=xxxxxx due to: The connection string contains invalid user information. If the username or password contains a colon (:) or an at-sign (@) then it must be urlencoded]
org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: mongodb://local-mongodb?collection=Projects&database=staging&hosts=localhost%3A27017&operation=getDbStats&password=xxxxxx&username=xxxxxx due to: The connection string contains invalid user information. If the username or password contains a colon (:) or an at-sign (@) then it must be urlencoded
at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:985) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:876) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:73) ~[camel-support-3.18.2.jar:3.18.2]
at org.apache.camel.support.ExchangeHelper.resolveEndpoint(ExchangeHelper.java:122) ~[camel-support-3.18.2.jar:3.18.2]
at org.apache.camel.support.ExchangeHelper.resolveEndpoint(ExchangeHelper.java:101) ~[camel-support-3.18.2.jar:3.18.2]
at org.apache.camel.processor.SendDynamicProcessor.resolveEndpoint(SendDynamicProcessor.java:296) ~[camel-core-processor-3.18.2.jar:3.18.2]
at org.apache.camel.processor.SendDynamicProcessor.process(SendDynamicProcessor.java:157) ~[camel-core-processor-3.18.2.jar:3.18.2]
at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:477) ~[camel-core-processor-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:189) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:61) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.processor.Pipeline.process(Pipeline.java:182) ~[camel-core-processor-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:399) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:210) ~[camel-timer-3.18.2.jar:3.18.2]
at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:76) ~[camel-timer-3.18.2.jar:3.18.2]
at java.util.TimerThread.mainLoop(Timer.java:556) ~[?:?]
at java.util.TimerThread.run(Timer.java:506) ~[?:?]
Caused by: **java.lang.IllegalArgumentException: The connection string contains invalid user information. If the username or password contains a colon (:) or an at-sign (@) then it must be urlencoded**
at com.mongodb.ConnectionString.<init>(ConnectionString.java:337) ~[mongodb-driver-core-4.6.0.jar:?]
at com.mongodb.client.MongoClients.create(MongoClients.java:61) ~[mongodb-driver-sync-4.6.0.jar:?]
at org.apache.camel.component.mongodb.MongoDbEndpoint.resolveMongoConnection(MongoDbEndpoint.java:348) ~[camel-mongodb-3.18.2.jar:3.18.2]
at org.apache.camel.component.mongodb.MongoDbEndpoint.doStart(MongoDbEndpoint.java:330) ~[camel-mongodb-3.18.2.jar:3.18.2]
at org.apache.camel.support.service.BaseService.start(BaseService.java:119) ~[camel-api-3.18.2.jar:3.18.2]
at org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113) ~[camel-api-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.AbstractCamelContext.deferStartService(AbstractCamelContext.java:1677) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.AbstractCamelContext.deferStartService(AbstractCamelContext.java:1654) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.AbstractCamelContext.internalAddService(AbstractCamelContext.java:1556) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1498) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1493) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1488) ~[camel-base-engine-3.18.2.jar:3.18.2]
at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:969) ~[camel-base-engine-3.18.2.jar:3.18.2]
... 15 more
This problem occurs for `username=username%40email.com`. Here I have used a URL-encoded version of **"@"**, that is **"%40"**. This exception is not showing if I remove that **"%40"** part. BTW, My Java code is working fine.
Please help.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org