我很困惑從駱駝中的to()
調用的子路由返回「主體」。從我發現的直接路由中,他們鼓勵路由重用,並用於邏輯分裂過度複雜的路由。但我似乎無法做一個簡單的「分裂」:來自直接路由的駱駝返回消息以供重用
from("jms:createRequestQueue")
.to("direct:createRequest")
// here the processing of the message fails, see below
.bean(processor)
.to("...");
from("direct:createRequest")
.onException(Exception.class).bean(requestErrorHandler).stop()
.unmarshal().json(JsonLibrary.Jackson, MyModelRequest.class);
類處理器實例如下:
public class RequestProcessor {
@Handler
public void update(@Body MyModelRequest request) {
// do stuff
}
}
的事情是,解編請求路由的結果(第二條路線)不會傳播回呼叫路線。拋出一個異常,說它不能將String(進入隊列的JSON)轉換爲MyModelRequest類。所以看起來第一個路由中的JSON主體並沒有被取消編組路由的結果所取代。這似乎是一個很好的路線重用,我希望。
我偶然發現了InOut消息,但文檔非常不清楚,我的實驗也以相同的方式失敗。
我需要做些什麼才能真正將部分路線提取到另一條路線以便重複使用?
嗯,這就是它,我知道它不應該是'直接'的路線:) –
是的,我也認爲它應該返回正文。謝謝你的幫助! – redhead
你能接受這個答案,以便問題不會顯示爲未答覆?謝謝! –