Я хотел бы получить следующий вид маршрутизации:
- Сообщение HTTP POST с телом XML входит в CAMEL
- Я храню некоторые параметры тела XML
- Сообщение направляется на внешнюю конечную точку
- Ответы внешней конечной точки (внешнего сервера)
-> в данный момент я хотел бы проверить, является ли ответ от внешней конечной точки HTTP 200 OK, содержащий параметр XML, равный SUCCESS.
-> если так, то я бы хотел использовать некоторые из сохраненных параметров для создания нового HTTP-сообщения (на этот раз = PUT) и отправить его на внешнюю конечную точку
Проблема, с которой я сейчас сталкиваюсь, заключается в следующем:
.choice()
.when(simple("${in.headers.CamelHttpResponseCode} == 200"))
// now I want do a few things, eg: check also the XML body via xpath
// and change the message to be sent out (change Method to PUT, ...)
.to("http://myserver.com")
.otherwise()
// if no 200 OK, I want the route to be stopped ... not sure how ?
.end()
Вопрос: есть идеи, как добавить эти дополнительные операторы в случае, если код ответа HTTP был в порядке? Похоже, когда не позволяет мне добавлять дополнительные заявления ...
(Я получил ошибку в Eclipse IDE).
Заранее спасибо.
Примечание: может ли быть так, что я должен направить сообщение в случае, если 200 OK соответствует «новой конечной точке», а затем создать новый маршрут от этой новой конечной точки?
Например:
.choice()
.when(simple("${in.headers.CamelHttpResponseCode} == 200"))
.to("mynewendpoint")
.otherwise()
// if no 200 OK, I want the route to be stopped ... not sure how ?
.end();
from("mynewendpoint").
.setHeader(etc etc)
.to("http://myserver.com")
В этом последнем случае, как именно я должен определить эту «новую конечную точку»?