2014-08-27 4 views
0

,이 오류가 발생합니다 : [EndpointNotFound] 없음 엔드 포인트 매핑 [SaajSoapMessage {http://www.w3.org/2001/04/xmlenc#}의 EncryptedData]봄-WS 페이로드를 기반으로 엔드 포인트 매핑

을 찾을 수 없습니다

스프링 WS는 먼저 올바른 끝점을 찾고 나중에 SOAP 몸체를 해독합니다. 이것은 분명히 옳은 일이 아닙니다.

SoapActionAnnotationMethodEndpointMapping이 해결책이라고 말하지 마십시오. 더 좋은 방법이 없을까요? 나는 SOAP Action이나 WS-A Action에 기반한 라우팅을 좋아하지 않을 것이다.

답변

0

불행히도 SoapActionAnnotationMethodEndpointMapping 또는 AnnotationActionEndpointMapping을 사용하면 사용할 수있는 유일한 매핑입니다. Spring-WS에서는 보안 인터셉터를 포함하여 인터셉터가 호출되기 전에 EndpointMapping이 쿼리되므로 암호화 된 메시지 페이로드에 의존하지 않는 매핑을 찾아야합니다.

그런데 EndpointMapping이 인터페이스이므로 인터페이스를 직접 작성하고 생각할 수있는 모든 종류의 라우팅 논리를 포함 할 수 있습니다. AbstractAnnotationMethodEndpointMapping에서 시작하는 것이이 접근법에 대한 좋은 출발점입니다. 매핑이 완료되면 응용 프로그램 컨텍스트에서 연결을 해제하면 Spring-WS의 MessageDispatcher에 의해 자동으로 감지되어야합니다.

+0

답변에 대해 Arjen에게 감사드립니다. 내 자신의 EndpointMapping을 작성하는 것은 흥미로운 옵션처럼 들립니다. –

+0

제안한대로 사용자 지정 EndpointMapping으로 문제를 해결할 수있었습니다. PayloadRootAnnotationMethodEndpointMapping과 함께 적용합니다. 그 중 하나는 항상 올바른 엔드 포인트를 찾습니다. –