我有三条骆驼路线可以单独运行,我尝试在第一条路线完成后调用第二条路线,但有些事情是如何启动的,第三条路线在我使用URL调用第二条路线后如何运行
jetty:http://localhost:8181/mongoSelect
,我在控制台上也没有错误。我已经试过换衣服了
from("jetty:http://localhost:8181/mongoSelect")
具有
direct:
组件,请在这方面帮助我。
常量
private static final String SOURCE = "file:\\workspace\\EmailResponseAutomationSTS\\response\\?noop=true";
private static final String DESTINATION = "mongodb:myDb?database=email_response&collection=emailResponse&operation=save";
private static final String QUERY_MONGO_DB = "mongodb:myDb?database=email_response&collection=emailResponse&operation=findAll";
第一条路线
from(SOURCE)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
final EmailResponseModel erm = new EmailResponseModel();
erm.setBody(exchange.getIn().getBody(String.class));
exchange.getIn().setBody(erm, DBObject.class);
}
})
.to(DESTINATION)
.end();
第二条路线
from("jetty:http://localhost:8181/mongoSelect")
.to(QUERY_MONGO_DB)
.marshal(new JacksonDataFormat())
.to("direct:redis")
.end();
第三条路线
from("direct:redis").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
final String name = exchange.getIn().getBody(String.class);
@SuppressWarnings({ "deprecation", "unchecked" })
List<BasicDBObject> obj = (List<BasicDBObject>) JSON.parse(name);
for(BasicDBObject model : obj) {
String s = model.getString("body");
jedis.set("mongoData", s);
}
jedis.close();
}
})
.end();
我已经尝试过这种方法:
第一条路线
from(SOURCE)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
final EmailResponseModel erm = new EmailResponseModel();
erm.setBody(exchange.getIn().getBody(String.class));
exchange.getIn().setBody(erm, DBObject.class);
}
})
.to(DESTINATION)
.to("direct:mongoSelect")
.end();
第二条路线
from("direct:mongoSelect")
.to(QUERY_MONGO_DB)
.marshal(new JacksonDataFormat())
.to("direct:redis")
.end();
更新时间:
当我使用从第一条路线调用第二条路线时,我的代码发生了一些奇怪的事情
direct:mongoSelect
组件,控件正在移入,但没有数据响应
.to(QUERY_MONGO_DB)
,但是如果我使用
发件人(“码头:http://localhost:8181/mongoSelect“”)
from("direct:mongoSelect")
在第二条路线中,我得到了相应的数据。
第一条路线
from(SOURCE)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
final EmailResponseModel erm = new EmailResponseModel();
erm.setEmailBody(exchange.getIn().getBody(String.class));
exchange.getIn().setBody(erm, DBObject.class);
}
})
.to(DESTINATION)
.to("direct:mongoSelect");
第二条路线
from("direct:mongoSelect")
.to(QUERY_MONGO_DB)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
String srt = exchange.getIn().getBody(String.class);
exchange.getIn().setBody(srt, DBObject.class);
}
})
.to("direct:redis")
.end();