Chciałbym uzyskać następujące rodzaje tras:Apache Camel: czy mogę umieścić wiele instrukcji w części warunkowej instrukcji wyboru?
- HTTP wiadomość POST z ciałem XML wchodzi CAMEL
- przechowywać niektóre parametry ciała XML
- komunikat jest kierowany do zewnętrznego Punkt końcowy
- zewnętrzny punkt końcowy (serwer zewnętrzny) odpowiada
-> w tej chwili, chciałbym sprawdzić, czy odpowiedź z punktu końcowego zewnętrznego jest HTTP 20 0 OK zawierające parametr XML równy SUKCESOWI. -> jeśli tak, to chciałbym użyć niektórych z przechowywanych parametrów do skonstruowania nowego komunikatu HTTP (metoda = PUT tym razem) i wysłać go do zewnętrznego punktu końcowego
Problem, który mam obecnie, jest co następuje:
.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()
Pytanie: jakikolwiek pomysł, jak dodać te dodatkowe instrukcje na wypadek, gdyby kod odpowiedzi HTTP był 200 OK? Wygląda na to, że kiedy nie pozwala mi dodawać dodatkowych instrukcji ... (Mam błąd w moim IDE Eclipse).
Z góry dziękuję.
Uwaga: czy możliwe jest wysłanie wiadomości na wypadek, gdyby 200 OK pasowało do "nowego punktu końcowego", a następnie utworzenie nowej trasy z tego nowego punktu końcowego? Np
.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")
W tym ostatnim przypadku, jak dokładnie należy zdefiniować to „newendpoint”?
Super! Dzięki. – opstalj
Dowolny powód, dla którego 'Predicate isOrm = PredicateBuilder.and (header (" hl7.msh.messageType "). IsEqualTo (" ORM "), nagłówek (" hl7.msh.triggerEvent "). IsEqualTo (" 001 "));' nie działa? Coś o tym, jak i kiedy jest oceniane? – Antares42
Czy istnieje sposób użycia tego PredicateBuilder w blueprint? – Yannick