43.7. 자주하는 질문


43.7.1. 개요

핸들러는 메시지 처리 중에 ProtocolException 예외가 throw될 때 오류 메시지를 처리하는 데 handleFault() 메서드를 사용합니다.

handleFault() 메서드는 처리기 유형에 따라 LogicalMessageContext 개체 또는 SOAPMessageContext 개체를 수신합니다. 수신된 컨텍스트는 핸들러의 메시지 페이로드에 대한 구현 액세스를 제공합니다.

handleFault() 메서드는 오류 메시지 처리 방법에 따라 true 또는 false를 반환합니다. 또한 예외를 throw할 수 있습니다.

43.7.2. 메시지 페이로드 가져오기

handleFault() 메서드에서 받은 컨텍스트 오브젝트는 handleMessage() 메서드에서 수신한 오브젝트와 유사합니다. 컨텍스트의 getMessage() 메서드를 사용하여 동일한 방식으로 메시지 페이로드에 액세스합니다. 유일한 차이점은 컨텍스트에 포함된 페이로드입니다.

LogicalMessageContext 사용에 대한 자세한 내용은 43.3절. “논리 핸들러에서 메시지 처리” 을 참조하십시오.

SOAPMessageContext 사용에 대한 자세한 내용은 43.5절. “SOAP 핸들러에서 메시지 처리” 을 참조하십시오.

43.7.3. 반환 값 확인

handleFault() 메서드가 메시지 처리를 완료하는 방법은 메시지 처리가 진행되는 방식에 직접적인 영향을 미칩니다. 다음 작업 중 하나를 수행하여 완료합니다.

return true
오류 처리가 정상적으로 계속되어야 한다는 실제 신호를 반환합니다. 체인에서 다음 처리기의 handleFault() 메서드가 호출됩니다.
return false
오류 처리가 중지되는 잘못된 신호를 반환합니다. 현재 메시지를 처리하는 데 호출된 핸들러의 close() 메서드가 호출되고 오류 메시지가 디스패치됩니다.
예외를 throw
예외를 throw하면 오류 메시지 처리가 중지됩니다. 현재 메시지를 처리하는 데 호출된 핸들러의 close() 메서드가 호출되고 예외가 디스패치됩니다.

43.7.4. 예제

예 43.13. “메시지 핸들러에서 Fault 처리” 는 메시지 본문을 화면에 출력하는 handleFault() 의 구현을 보여줍니다.

예 43.13. 메시지 핸들러에서 Fault 처리

public final boolean handleFault(LogicalMessageContext messageContext)
{
  System.out.println("handleFault() called with message:");

  LogicalMessage msg=messageContext.getMessage();
  System.out.println(msg.getPayload());

  return true;
}
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.