WebServiceTemplate - разница между перехватчиком и обратным вызовом?

Я пытаюсь написать свой первый клиент, используя Spring-WS, и немного запутался в некоторых основах. Мне нужно вставить токен SAML в заголовок, и я заметил, что класс WebServiceTemplate допускает как Interceptors, так и WebServiceMessageCallbacks.

Может кто-нибудь помочь мне понять, почему я должен использовать один против другого?

Во-вторых, я заметил, что класс WST допускает список перехватчиков, но только один обратный вызов. Кто-нибудь знает, какая логика стояла за этим дизайнерским решением? Почему нет возможности передать массив или список обратных вызовов?

Спасибо,

Эрик

1 ответ

Мне было интересно то же самое после прочтения вашего вопроса (-:

По этой ссылке есть краткое объяснение, и именно так я и использую оба. Например, для конкретного запроса мне нужно установить действие SOAP:

JAXBElement<Response> response = (JAXBElement<Response>) webserviceTemplate.marshalSendAndReceive(
    request, 
    new SoapActionCallback("PutOrganisationUnitRequest")
);

Это действительно простой анонимный класс, как упомянуто в ссылке. С другой стороны, перехватчик определяется и используется для всех запросов. Взгляните, например, на XwsSecurityInterceptor, я использую это для настройки аутентификации на ВСЕХ запросах.

Другие вопросы по тегам