You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Camel-K 1.6.0连接MongoDB默认访问本地地址问题咨询

Camel-K 1.6.0连接MongoDB配置方案

问题原因

你当前配置不生效的核心原因是:当你通过camel.beans预先注册mongoBean作为MongoClient实例时,Camel MongoDB组件会优先使用该已实例化的客户端,不会读取URI中配置的hosts、用户名、密码等连接参数。你当前配置的无参构造com.mongodb.MongoClient默认会连接127.0.0.1:27017,所以抛出连接超时异常。

疑问解答

1. 是否需要引用其他类?

不需要,你当前使用的com.mongodb.MongoClient是适配Camel-K 1.6(对应Camel 3.11.x版本)MongoDB组件的正确类,无需替换。

2. mongoBean相关属性配置方案

推荐两种配置方式,都不需要在URI中写连接参数:

方案一:通过连接字符串构造(更简洁)

修改integration.properties内容如下:

# 构造MongoDB连接URI
camel.beans.mongoClientURI = #class:com.mongodb.MongoClientURI('mongodb://[替换为你的用户名]:[替换为你的密码]@[替换为你的主机地址]:[替换为端口]/[替换为数据库名]')
# 用连接URI实例化MongoClient
camel.beans.mongoBean = #class:com.mongodb.MongoClient(#mongoClientURI)

对应路由中的URI可以简化为:

.to("mongodb:mongoBean?database=[替换为你的数据库名]&collection=[替换为你的集合名]&operation=getDbStats")

方案二:拆分配置各项参数

如果需要单独配置各属性,可使用如下配置:

# 配置MongoDB服务地址
camel.beans.serverAddress = #class:com.mongodb.ServerAddress('[替换为你的主机地址]', [替换为端口,默认27017])
# 配置认证凭证
camel.beans.mongoCredential = #class:com.mongodb.MongoCredential('createCredential', '[替换为你的用户名]', '[替换为你的数据库名]', '[替换为你的密码]'.toCharArray())
# 构造MongoClient实例
camel.beans.mongoBean = #class:com.mongodb.MongoClient(#serverAddress, #mongoCredential, #class:com.mongodb.MongoClientOptions('builder().build()'))

额外注意

如果运行时提示缺少MongoDB组件依赖,可在Java文件开头的注释中添加依赖声明:

// camel-k: language=java property=file:integration.properties dependency=mvn:org.apache.camel:camel-mongodb3

部署命令无需修改,仍使用kamel run MongoDBTest.java --dev即可。

内容的提问来源于stack exchange,提问作者Bjorn Thor Jonsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:57:00