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

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

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

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

Спасибо,

Эрик


person Eric B.    schedule 21.06.2012    source источник


Ответы (1)


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

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

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

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

person evandongen    schedule 02.07.2012