2014-01-05 2 views
2

스프링 통합 구성 요소를 사용하고 있습니다. 해당 구성 요소는 일부 XML을 받고 더 많은 내용으로 XML을 강화합니다.스프링에서 메시징 예외 오류 메시지를 변경하는 방법

그러나 예외가 발생하면 수신 된 입력 XML을 실패한 메시지로 보내려고하지만 현재 시나리오에서는 메시지가 실패한 부분적으로 풍부한 XML을 보유합니다.

예외의 실패한 메시지를 변경할 수있는 방법이 있습니까? 예외는 메시징 예외로 래핑됩니다.

+0

어쩌면 http://stackoverflow.com/questions/6490904/handling-exceptions-in-a-spring-integration-transformer –

답변

1

매우 구체적인 사례이므로 사용자의 구성, 특히 error-channel의 위치와 XML을 풍부하게하는 방법을 확인해야합니다.

그러나, Message은 변경 불가능한 개체이며 각 개체와의 상호 작용이 새로운 메시지를 제공한다는 점을 명심하십시오. 그러나 payload은 messsaging 범위를 벗어나지 않으며 변경할 수 없습니다. 페이로드의 일부 속성이 변경된 후 일부 예외가 발생하면 에 inbound 메시지 (실패)가 표시되지만 페이로드의 상태가 변경 될 수 있습니다.

귀하의 사례 인 것처럼 보입니다.

풍성하게하기 전에 payload-cloning 변형에 대해 생각해야합니다. 다음은이 문제에 대한 몇 가지 조언은 다음과 같습니다 https://jira.springsource.org/browse/INT-2979

+0

당신은 (예 : 일부 불변의 객체로 시작하는 경우 문자열)을 사용한다면 헤더 (header-enricher with'

')에서 간단히 참조 할 수 있습니다. 그런 다음 failedMessage의 헤더 (orig)로 사용할 수 있습니다. 변경 가능한 객체 인 경우 변경 사항은 두 위치에 있으므로 Artem에서 제안하는 것처럼 복제해야합니다. –

관련 문제