尝试使用ReplyTo时获取异常。要求是接收来自外部队列的答复。不知道为什么会收到超时错误,是否必须进行任何配置更改或任何代码更改。尝试了不同的方法,但是没有用。任何帮助将不胜感激
我正在从文件夹中读取文件,将文件拆分并将结果发送到req队列,并期望在req2上得到答复
from("file://C:/pkuma1?fileName=request464.txt").routeId(messageType+"sasasas")
.split()
.tokenize("\\n")
.log(INFO,"i am initial")
.setHeader("JMSReplyTo", simple("req2"))
.inOut("amq://queue:req?replyTo=req2&preserveMessageQos=true&replyToType=Shared&receiveTimeout=250")
// .inOut("amq://queue:req")
.transform(constant("Bye Camel"))
.log(INFO,"msg id initial = ${in.header.JMSMessageId}")
.log(INFO,"corr id initial = ${in.header.JMSCorrelationID}")
.to("stream:out");
from("amq://queue:req")
.log(INFO,"i am second route")
.log(INFO,"msg id second route = ${in.header.JMSMessageId}")
.log(INFO,"corr id second route = ${in.header.JMSCorrelationID}");
.setHeader("JMSCorrelationID", simple("${in.header.JMSCorrelationID}"));
.transform(simple("Hello in second route ${in.body}"))
.process(exchange -> {
System.out.println(exchange);
System.out.println("route2");
});
//.end();
//.to("amq://queue:req2");
from("amq://queue:req2?disableReplyTo=true")
.log(INFO,"i am third route")
.log(INFO,"msg id third route = ${in.header.JMSMessageId}")
.log(INFO,"corr id third route = ${in.header.JMSCorrelationID}")
.setHeader("JMSCorrelationID", simple("${in.header.JMSCorrelationID}"))
.transform(simple("Hello ${in.body}"))
.process(exchange -> {
System.out.println(exchange);
System.out.println("route3");
System.out.println(exchange.getIn().getHeader("JMSCorrelationID"));
exchange.getIn().setBody("Hello ${in.body}");
exchange.getIn().setHeader(JmsConstants.JMS_DESTINATION, "");
exchange.getIn().setHeader("JMSReplyTo","");
exchange.getIn().setHeader("JmsDestination","");
exchange.getIn().setHeader("CamelJmsDestination","");
})
.to("stream:out")
.end();
得到以下错误120000毫秒等待具有相关性ID的回复消息后发生超时