Apache camel Apache Camel消息交换不等待响应
我有以下代码用于将消息发布到activeMQ并通过exchange读取响应。但代码似乎是即时返回的,而不是等待响应。你能指出下面的Scala代码有什么问题吗Apache camel Apache Camel消息交换不等待响应,apache-camel,activemq,Apache Camel,Activemq,我有以下代码用于将消息发布到activeMQ并通过exchange读取响应。但代码似乎是即时返回的,而不是等待响应。你能指出下面的Scala代码有什么问题吗 def sendAndReceiveExtractionDetails(request:String, header: String) : String = { val exchange: DefaultExchange = new DefaultExchange(camel, ExchangePattern.InOut)
def sendAndReceiveExtractionDetails(request:String, header: String) : String = {
val exchange: DefaultExchange = new DefaultExchange(camel, ExchangePattern.InOut)
exchange.getIn.setBody(request)
exchange.getIn.setHeader("meshId", header)
producer.send("activemq:queue:extractor-jobs?requestTimeout=1400000", exchange)
val out: apache.camel.Message = exchange.getOut()
out.getBody().toString
}
它似乎忽略了您设置的
ExchangePattern
。您是否尝试在JMS URI上将其设置为activemq:queue:…&exchangePattern=InOut
我不确定您是否还需要在消息上定义
JMSReplyTo
标题,或者这是否在exchangePattern输入输出时自动完成。在生产者上使用请求
方法,因为这是针对输入输出的以下代码对我有效:
def sendAndReceiveExtractionDetails(request:String, header: String) : String = {
camel.createProducerTemplate()
.sendBody("activemq:queue:extractor-jobs?requestTimeout=1400000", ExchangePattern.InOut, request).toString
}