2012-11-19 4 views
1

WSO2 ESB 프록시를 사용하여 메시지를 읽을 때 특정 데이터 형식을 정의해야하며 특정 MessageBuilder (axis2.xml에 정의 됨)가 적용됩니다.WSO2 ESB 캐치 전송 예외 (MessageBuilder)

하지만 MessageBuilder가 실패하면 (즉 XMLBuilder로 텍스트 파일을 읽으려고 시도) 콘솔에서 예외가 발생하지만 "faultSequence"는 호출되지 않습니다. 그러나 읽기 문제가 발생할 경우 특정 오류 처리를 수행해야합니다.

프록시의 전송 계층 (MessageBuilder)에서 예외를 catch하는 방법은 무엇입니까?

답변

-1

구성에 onError 속성을 정의 했습니까?

<sequence name="main" onError="myFaultSequence"> 

자세한 내용은 sample에 있습니다.

+0

예 내가했지만 순서가 아직 호출되지 않습니다 예외 프록시하여 파일의 읽기 중에 이미 발생 ... 그건 내 문제 야 ... – FiveO

0

귀하의 요구 사항은 전송 계층에서 오류를 발견하고 응용 프로그램 수준 (예 : 중재 수준)에서 처리하는 것입니다. 위의 레이어를 의미합니다.

하지만 메시징 프레임 워크의 계층화 된 아키텍처를 위반한다고 생각합니다. 메시지 빌더 자체에서 Exception을 잡아서 Axis Fault를 throw하여 기본 시냅스 전송 레이어 (이 경우 Axis2)가 해당 오류를 처리하도록해야합니다. (클라이언트에게 오류를 보낼 것입니다.)

일반적으로 사용되는 관행 인 TCP 프로토콜 스택을 살펴 봅니다.

조정 레벨에서이 오류를 정말로 필터링하고 싶다면. Message Builder에서 해당 오류를 포착하고 메시지 컨텍스트 속성 또는 사용자 정의 메시지를 추가하고이를 성공적인 메시지로 전달하십시오. 조정 레벨에서 필터를 수행하고 처리하십시오.

하지만 다시는 추한 것입니다. :

--Charith

+0

니스 해결, 하지만 다른 사람들이 교통 수단 층에서 오류를 어떻게 처리합니까? 나는 표준 MessageBuilder를 사용하고 있으며, 단지 시냅스 프록시에 예외를 전파하기 위해 모든 소스를 변경한다고 생각하지 않는다. 클라이언트에 오류를 보내는 것은 실제로 가능하지 않습니다 (VFS/FTP 문제, TCP/IP HL7 문제 등). 이러한 경우에는 지원 팀에 FTP가 필요하다는 경고를 보내야합니다. 더 이상 일하지 않습니다 ...하지만 어떻게 할 수 있습니까? – FiveO