Camel

2016-04-06 18 views
0

'deki rotalar arasındaki istisnalar nasıl bildirilir RESTFul servisine çağrı yapan bir Deve Uygulaması var. Camel

müvekkillerim

Hem RESTful ve SOAP yolları aslında dinlendirici hizmetine çağrı yapan bir ortak rota çağırarak sona

bir sığınakta ve bir SOAP arayüzü maruz. EXTERNAL_REST_SERVICE benim çağrısı başarısız olursa

Yani, (Bağlantı örneğin reddetti)

<camel:route> 
    <camel:from uri="RESTFUL_INTERFACE" /> 
    <camel:to uri="direct:CALLEXTERNAL_REST_SERVICE" /> 
    <camel:to uri="ADAPT_RESPONSE" /> 
</camel:route> 

<camel:route> 
    <camel:from uri="SOAP_INTERFACE" /> 
    <camel:to uri="direct:CALLEXTERNAL_REST_SERVICE" /> 
    <camel:to uri="ADAPT_RESPONSE" /> 
</camel:route> 

<camel:route> 
    <camel:from uri="direct:CALLEXTERNAL_REST_SERVICE" /> 
    <camel:to uri="EXTERNAL_RESTFUL_SERVICE" /> 
</camel:route> 

gibi küçük s, o zaman benim DİNLENME ve SOAP yolları farklı eylemleri gerekir. Anlatabildiğim kadarıyla, onException yalnızca belirtildiği rota için geçerlidir.

direct:CALLEXTERNAL_REST_SERVICE'daki arızayı "dış" rotalara nasıl geri gönderirim?

cevap

1

Deve içeriğiniz için bir onException alabilirsiniz (bu, içindeki tüm rotalara uygulanacaktır). Oradan, onException sadece başka bir yoldur. Örneğin, bir CBR'niz olabilir ve istisnanın oluştuğu yere göre ne yapacağınızı belirtin.

+0

Camel için oldukça yeni - Bir CBR nedir? – DaveH

+0

Içerik Tabanlı Yönlendirici: http://camel.apache.org/content-based-router.html –

+0

Tamam - teşekkürler - ama bu yol, kökeninin ne olduğunu biliyordu? Bir REST isteğine yanıt verirse, bazı JSON ile bir HTTP 500 kodu döndürmeli, SOAP isteğiyse HTTP 200'ü bir SOAP FAULT iletisi ile döndürmelidir. – DaveH

İlgili konular