Apache camel Apache Camel消息交换不等待响应

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)

我有以下代码用于将消息发布到activeMQ并通过exchange读取响应。但代码似乎是即时返回的,而不是等待响应。你能指出下面的Scala代码有什么问题吗

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
  }