Как маршрутизировать в SpringRouteBuilder динамический URI, содержащийся в Camelhttpquery? - PullRequest
0 голосов
/ 01 января 2019

Я довольно новичок в Apache Camel и не нахожу элегантного способа решить мою проблему.Я получаю входящий запрос следующим образом:

servlet: / services? Http: /// services? Param1 = value1¶m2 = value2…

Я хочудинамический маршрут к

http: /// services? param1 = value1¶m2 = value2…

Когда сервлет uri: / services «обнаружен» (из)

Я могу извлечь конечный запрос из заголовка («CamelHttpQuery»), но я не понимаю, как использовать его для пересылки.Вот реализация, которую я пробовал, но она не работает:

public class Routes extends SpringRouteBuilder {
    @Override
    public void configure() throws Exception {   
        this.from("servlet://{{path.directory.service}}?matchOnUriPrefix=true").beanRef("filterPolicy", "canAccess")
            .recipientList(this.header("CamelHttpQuery")).removeHeaders("CamelHttp*")
    }
}

1 Ответ

0 голосов
/ 02 января 2019

Существует метод toD для динамической конечной точки http://camel.apache.org/message-endpoint.html

Fe У меня есть этот рабочий код для динамического uri

  <setHeader headerName="customerId">
    <ognl>request.body.customerId</ognl>
  </setHeader>
  <setBody><constant></constant></setBody>
  <setHeader headerName="CamelHttpMethod">
      <constant>GET</constant>
  </setHeader>            
  <toD uri="http4://localhost:9292/score/customer/${header.customerId}?bridgeEndpoint=true"/>   
...