時,這一問題與前一個Apache的駱駝CXF空響應:Apache Camel multicast, exception and Aggregation strategy處理異常
我覺得問上一個問題,當我missunderstood問題。
我嘗試處理我在路由中拋出的異常。
.filter(not(successResponsePredicate))
.to("log:com.sdmo.Error?level="+LOG_LEVEL)
.transform(simple("Erreur lors de l'appel copyItem"))
.process(new ConvertCartResponseProcessor())
.throwException(new Exception("copyItemError"))
.end()
唯一的例外是通過這個代碼來處理:
onException(java.lang.Exception.class).handled(true).inOut("direct:thrownError");
from("direct:thrownError")
.to("log:com.sdmo.output?level="+LOG_LEVEL);
我的路線是由CXF端點開始,但在異常處理途徑實現的,身體回到自己的WS客戶端是空的。
我對調試模式和日誌進行了幾次檢查,以確保異常處理代碼設置了響應,並且如果我通過簡單類型替換正文(POJO類型),發送回覆時出現解組錯誤。
最後一行的回覆之前記錄的展示身體是明確界定:
INFO: Exchange[ExchangePattern:InOut, BodyType:com.access_commerce.cameleonws.cart.AddXMLResponse, Body:[email protected]]
我想這有什麼不對我使用的InOut圖案或類似的...
嘗試在onException子句中調用setBody(常量(「ERROR」))或變換(常量(「ERROR」)),而不是.inOut(...)。這至少起作用嗎? –
CXF端點處於POJO模式,如果我有這種轉換,我得到一個編組錯誤:注意:Interceptor for {http://www.access-commerce.com/cameleonWS/cart/}CartService#{http: www.access-commerce.com/cameleonWS/cart/}addXML引發異常,現在展開爲 org.apache.cxf.interceptor.Fault:編組錯誤:類java.io.ByteArrayInputStream及其任何超類都是已知的上下文。 – Franch