import org.apache.hc.core5.http.HttpHost;
import org.springframework.ws.transport.http.HttpComponents5ClientFactory;
import org.springframework.ws.transport.http.SimpleHttpComponents5MessageSender;

var factory = HttpComponents5ClientFactory.withDefaults();
factory.addClientBuilderCustomizer(builder ->
    builder.setProxy(new HttpHost("http", "proxy.example", 8080)));

var sender = new SimpleHttpComponents5MessageSender(factory);
template.setMessageSender(sender);

Կիրառեք այս ուղարկողը գոյություն ունեցող template-ի վրա զանգերից առաջ՝ պահպանելով ծառայության URI-ն, marshaller-ը և այլ կարգավորումները։ Սա Spring-WS 4.1.0-ն է Apache HttpClient 5-ով։ Եթե ձևանմուշը թիրախավորում է թույլատրված հանրային SOAP ծառայություն առանց պրոքսի նույնականացման, ապա HTTP պրոքսիների ցանկից վերցված HTTP հասցեն կարող է լրացնել հարմարեցնողի պրոքսին։

withDefaults պահպանում է այն ինտերսեպտորը, որը հեռացնում է SOAP-ի տրամադրած Content-Length և Transfer-Encoding վերնագրերը, նախքան Apache-ն կստեղծի HTTP շրջանակավորումը։ Այնտեղ պրոքսիի հարմարեցնող ավելացնելը խուսափում է այդ ինտեգրումը մերկ հաճախորդով փոխարինելուց։ Առանձին կառուցված Apache հաճախորդի համար պահպանեք Spring-WS-ի վերնագրերը հեռացնող ինտերսեպտորը։

Համաձայնեցրեք ներմուծումներն ու ուղարկողի ստեղծումը։ HttpComponentsMessageSender/org.apache.http օգտագործող հին օրինակները կիրառում են Apache 4, ոչ թե այս SimpleHttpComponents5MessageSender-ը և HttpHost ինտերֆեյսը։

Պահեք ձեռքով ստեղծված ուղարկողը SOAP հաճախորդի ողջ կյանքի ընթացքում և դրանից հետո ապահովեք դրա սովորական ոչնչացումը։ Spring-ի կողմից կառավարվող bean-ը կարող է օգտագործել կոնտեյների կյանքի ցիկլը։ Այլ ուղարկողներ պահող ձևանմուշները պահպանում են իրենց սեփական տրանսպորտային կարգավորումը։

Առնչվող հոդվածներ