无法使用直接组件在生产者端点上查询 MongoDb
Cannot query MongoDb on producer endpoint using direct component
我配置了以下路由来查询我的本地 MongoDB 实例。
该实例 运行 在端口 27017 上的本地主机上,未经身份验证。
路线是:
from("direct:start")
.to("mongodb:mongoBean?" +
"database=camel-source" +
"&collection=RacingEvents" +
"&operation=getDbStats")
.convertBodyTo(String.class)
.to("file://E:/data/test.txt");
我的 mongoBean 在 spring 中定义为:
<bean id="mongoBean" class="com.mongodb.Mongo">
<constructor-arg name="host" value="localhost" />
<constructor-arg name="port" value="27017" />
</bean>
路由启动正常,但没有数据发送到文件端点。
如果我用计时器替换直接:组件端点:组件数据写入文件端点:
from("timer://foo?delay=1&repeatCount=1")
.to("mongodb:mongoBean?" +
"database=camel-source" +
"&collection=RacingEvents" +
"&operation=getDbStats")
.convertBodyTo(String.class)
.to("file://E:/data/test.txt");
问题是为什么direct组件不发起对MongoDB的调用,而timer组件发起。
direct
组件仅在您向其发送消息时进行路由,这类似于 Java 中的直接方法调用,例如,当您在 java 实例上调用方法时。另一方面,timer
独立运行,每 X 周期触发一条新的空消息。
查看更多详情
还有一些常见问题解答
我配置了以下路由来查询我的本地 MongoDB 实例。 该实例 运行 在端口 27017 上的本地主机上,未经身份验证。
路线是:
from("direct:start")
.to("mongodb:mongoBean?" +
"database=camel-source" +
"&collection=RacingEvents" +
"&operation=getDbStats")
.convertBodyTo(String.class)
.to("file://E:/data/test.txt");
我的 mongoBean 在 spring 中定义为:
<bean id="mongoBean" class="com.mongodb.Mongo">
<constructor-arg name="host" value="localhost" />
<constructor-arg name="port" value="27017" />
</bean>
路由启动正常,但没有数据发送到文件端点。
如果我用计时器替换直接:组件端点:组件数据写入文件端点:
from("timer://foo?delay=1&repeatCount=1")
.to("mongodb:mongoBean?" +
"database=camel-source" +
"&collection=RacingEvents" +
"&operation=getDbStats")
.convertBodyTo(String.class)
.to("file://E:/data/test.txt");
问题是为什么direct组件不发起对MongoDB的调用,而timer组件发起。
direct
组件仅在您向其发送消息时进行路由,这类似于 Java 中的直接方法调用,例如,当您在 java 实例上调用方法时。另一方面,timer
独立运行,每 X 周期触发一条新的空消息。
查看更多详情
还有一些常见问题解答