podczas "zabawy" z Camel przy użyciu Spring DSL, natknąłem się na następujący problem. Załóżmy, że oczekiwany przepływ wiadomość wygląda tak:Apache Camel: jak przechowywać zmienną do późniejszego wykorzystania
- klient wysyła wiadomość HTTP POST z ciałem XML do Camel
- Camel Prokurenci wiadomość HTTP POST w stronę serwera, z URI nieznacznie dostosowane za pomocą informacji z odebranego ciała XML (np: za pomocą XPath do odfiltrować pewien parametr)
- po CAMEL otrzymał odpowiedź, CAMEL wysyła wiadomość HTTP PUT do serwera za pomocą parametrów z organizmu XML otrzymanego w 1
Więc coś takiego:
<route>
<from uri="...">
<to uri="...">
<to uri="...">
</route>
Pytanie: w jaki sposób zapisać parametry w Spring DSL w kroku 1, aby móc z nich korzystać później w kroku 3?
Chciałbym więc wyodrębnić parametry XML z treści XML komunikatu otrzymanego w kroku 1 i umieścić je w zmiennych, które następnie będę mógł wykorzystać do skomponowania wiadomości, która zostanie wysłana w kroku 3.
Dla wyodrębnienia parametrów, myślałem o używaniu XPATH. To wygląda dobrze, ale po prostu nie widzę sposobu, aby umieścić wyjście XPATH w zmiennej, a następnie użyć tej zmiennej później ... (składnia ??)
Uwaga: jak widać mój rozwój wiedza jest raczej ograniczona ... przepraszam za to. Ale nadal byłoby wspaniale, gdyby ktoś mógł w tym pomóc :).
Dzięki już za odpowiedź. Czy istnieje jednak szansa na uzyskanie tego samego kodu, ale dla Spring DSL (notacja XML)? Twoje zdrowie. – opstalj
W międzyczasie ponownie zakodowałem z Java DSL i działa dobrze. Jeszcze raz dziękuję.Mam jeszcze jedno pytanie: jaka jest różnica między używaniem setHeader i setProperty? – opstalj
Przeczytaj ten rozdział, aby poznać pojęcia dotyczące wielbłądów, a dowiesz się jaka jest różnica pomiędzy właściwościami i nagłówkami: http://manning.com/ibsen/chapter1sample.pdf –