تكوين وكيل Spring-WS 4.1 مع HttpComponents 5
خصّص مصنع عميل HttpComponents5 في Spring-WS 4.1 واربط المرسل الناتج بـ WebServiceTemplate.
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 المعترض الذي يزيل رأسي Content-Length وTransfer-Encoding المقدمين من SOAP قبل أن ينشئ Apache تأطير HTTP. وإضافة مخصّص الوكيل هناك تمنع استبدال ذلك التكامل بعميل عارٍ. وبالنسبة إلى عميل Apache المبني بشكل منفصل، احتفظ بمعترض إزالة الرؤوس في Spring-WS.
طابق الاستيرادات وتوليد المرسل. الأمثلة الأقدم التي تستخدم HttpComponentsMessageSender/org.apache.http تعتمد Apache 4، وليس SimpleHttpComponents5MessageSender وواجهة HttpHost هذه.
احتفظ بمرسل منشأ يدوياً طوال عمر عميل SOAP ورتّب تدميره الطبيعي بعد ذلك. ويمكن لحبة يديرها Spring أن تستخدم دورة حياة الحاوية. أمّا القوالب الأخرى التي تحتفظ بمرسلين آخرين فتحافظ على تكوين النقل الخاص بها.