2014-05-12 2 views
0

I는 경로를 가지고카멜 데드 문자 채널

from("restlet://RestletBean/{id}?restletMethod=GET") 
    .setHeader(Exchange.HTTP_METHOD, constant("GET")) 
    .setHeader(Exchange.HTTP_URI, simple("http://x.y.z.com?id={header.id}")) 
    .to("http://dummyHost") 

I합니다 (to 경로에 URI 파라미터로서 사용되고,이 경우에 id) 적절한 입력을 제공하지 않을 때. to 경로는 나를 오류 페이지로 응답합니다. 어떤 일도 일어나지 않습니다.

from("restlet://RestletBean/{id}?restletMethod=GET"). 
    .setHeader(Exchange.HTTP_METHOD, constant("GET")) 
    .setHeader(Exchange.HTTP_URI, simple("http://x.y.z.com?id={header.id}")) 
    .to("http://dummyHost") 
    .errorHandler("http://x.y.z.com?id={header.id}"); 

답변

0

죽은 편지 채널이 응답에 영향을주지 않는 대신 죽은 편지 채널 오류 처리기를 사용하여 처리 후에도 빈 페이지가있다. Camel doc에서 :

죽은 편지 채널 1 초 지연을 사용하는 대부분의 6 배에 재전송되며, 교환이 실패하면 그것은 ERROR 레벨로 기록됩니다.

그런데 오류 처리기에서 제대로 작동하지 않는 문자 채널을 정의하지 않았습니다. 그것은해야한다 :

errorHandler(deadLetterChannel("...")) 

당신은 truethrowExceptionOnFailure 매개 변수를 설정하려고 했습니까? Camel doc에서 :

옵션 원격 서버에서 실패한 응답의 경우에 HttpOperationFailedException을 던지는 비활성화합니다. 이렇게하면 HTTP 상태 코드에 관계없이 모든 응답을 얻을 수 있습니다.