2016-07-18 11 views
1

스프링 통합 게이트웨이 플로우에서 두 개의 웹 서비스 아웃 바운드 게이트웨이를 사용하여 2 개의 다른 웹 서비스를 호출합니다. 나는 2 개의 fault Resolver를 구현하여 각 게이트웨이에서 SOAP 결함 을 해결하고 사용자 정의 응용 프로그램 예외를 만들고 resolver에서 예외 처리기로 보내려합니다.오류 메시지 리졸버에서 CustomException을 throw 할 수 없습니다.

서비스 요청으로부터 SOAP 오류를 수신 할 때마다 My FaultResolver가 호출됩니다. 하지만 난 해결사에서 IOException을 던질 수 있도록 사용자 정의 excetion을 던지지 못했습니다.

이 때문에 나는 내 해결사에서 메시지로 런타임 예외를 던지고 내 예외 처리기에서이 런타임 예외를 잡아 당깁니다. 런타임 예외를 throw하고 Handler를 catch하는 올바른 방법입니까? 아니면 SOAP 오류를 처리하고 사용자 지정 예외를 throw하기 위해이 시나리오 나 다른 구현을 처리하는 다른 더 좋은 방법입니다.

답변

1

솔루션이 좋은지 아닌지를 결정하는 가장 좋은 방법은 문제에 대한 즉시 구현을 시도하는 것입니다. 그 중 하나는 다음과 같습니다 WebServiceFaultException 정확히 RuntimeException

public class SimpleFaultMessageResolver implements FaultMessageResolver { 

    public void resolveFault(WebServiceMessage message) { 
     if (message instanceof FaultAwareWebServiceMessage) { 
      throw new WebServiceFaultException((FaultAwareWebServiceMessage) message); 
     } 
     else { 
      throw new WebServiceFaultException("Message has unknown fault: " + message); 
     } 
    } 
} 

입니다.

그래서 나는 앞으로 나아갈 수 있다고 생각합니다.

+0

정보 주셔서 감사합니다. @Artem 구현과 함께 보내 드리겠습니다. – springbootlearner