0

예외로 던져 지거나 비동기 오류로 처리되었는지에 관계없이 정보가 누출되지 않도록 통합 플로우의 호출자에게 돌아가는 모든 오류 메시지를 조정해야합니다. . 모든 메시지 처리기에서 사용자 정의 오류 채널을 정의하는 것을 피하고 싶습니다.스프링 통합 : 모든 보내는 오류 메시지를 조정하는 방법

@Bean 
IntegrationFlow errorFlow() { 
    return IntegrationFlows.from("errorChannel") 
      .transform("{'status': 500, 'error': 'Internal Server Error'}") 
      .get(); 
} 

내가 나가는 모든 오류 메시지를 변환 할 수있는 중앙 지점이 : 내가 성공하지 않고 기본 오류 채널에 변압기를 연결하는 시도?

답변

1

로직에 따르면 REST를 처리하는 것처럼 보입니다. 요청/응답. 따라서 요청 지점으로 답장을 보내야합니다. 이것은 요청 메시지의 replyChannel 헤더를 통해 사용할 수 있습니다. 이러한 정보는 의 속성에서 ErrorMessage에 액세스 할 수 있습니다.

모든 내용을 요약하면 .transform()MessagingException을 페이로드로 예상해야하며 failedMessage의 헤더를 복사하여 출력 메시지를 생성해야합니다. 이렇게하면 메시지가 HTTP 인바운드 게이트 웨이 요청 메시지의 응답 채널로 전송됩니다.