WebServiceTemplate აგზავნის თავისი WebServiceMessageSender-ის მეშვეობით. კონფიგურირეთ ამ გამგზავნის HTTP კლიენტი, როცა SOAP დანიშნულება მოითხოვს გამტარ პროქსის.

Spring WS 4.1-ისთვის Apache HttpClient 5-ის ხელმისაწვდომობით:

var http = org.apache.hc.client5.http.impl.classic.HttpClients.custom()
    .setProxy(new org.apache.hc.core5.http.HttpHost(
        "http", "proxy.example", 8080))
    .addRequestInterceptorFirst(
        new org.springframework.ws.transport.http
            .HttpComponents5ClientFactory.RemoveSoapHeadersInterceptor())
    .build();

var sender = new org.springframework.ws.transport.http
    .HttpComponents5MessageSender(http);
webServiceTemplate.setMessageSender(sender);

webServiceTemplate არის აპლიკაციის არსებული შაბლონი. მისი SOAP სერვისის URI რჩება დანიშნულებად; HTTP კლიენტი ინახავს შუამავალს, რომელიც შეიძლება იყოს საჯარო კანდიდატი HTTP პროქსების სიიდან, როცა ეს მარშრუტი დაშვებულია.

მორგებული კლიენტის კონსტრუქტორი არ ამატებს გამგზავნის ჩვეულ სათაურის ინტერცეპტორს. შეინარჩუნეთ ის კლიენტის აწყობისას: ის შლის SOAP-ის მიერ მოწოდებულ სატრანსპორტო სათაურებს, რომლებსაც Apache-ის მოთხოვნის დამუშავება მართავს. კლიენტის ფაბრიკის ნაგულისხმევებით აწყობილი გამგზავნი სხვა აწყობის გზაა, რომელიც ინარჩუნებს ამ ინტეგრაციას.

დაამატეთ საჭირო პროქსის სერტიფიკატები და დროის ლიმიტები მორგებულ კლიენტს მისი საკუთარი მხარდაჭერილი ინტერფეისებით. გამგზავნის setter მეთოდები არ ცვლის უკვე მოწოდებული კლიენტის კონფიგურაციას.

შეინარჩუნეთ კლიენტი შაბლონის დატვირთვისთვის და გამორთვისას დახურეთ საკუთარი რესურსები. ეს მაგალითი იყენებს HttpClient 5 გამგზავნს; Spring WS-ის მაგალითები, რომლებიც იმპორტავენ org.apache.http-ს, აღწერენ კლიენტის სხვა თაობას.

დაკავშირებული სტატიები