Spring-WS 4.1 պրոքսիի կարգավորումը HttpComponents 5-ով
Հարմարեցրեք Spring-WS 4.1-ի HttpComponents5 հաճախորդի գործարանը և ստացված ուղարկողին կցեք 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 պահպանում է այն ինտերսեպտորը, որը հեռացնում է SOAP-ի տրամադրած Content-Length և Transfer-Encoding վերնագրերը, նախքան Apache-ն կստեղծի HTTP շրջանակավորումը։ Այնտեղ պրոքսիի հարմարեցնող ավելացնելը խուսափում է այդ ինտեգրումը մերկ հաճախորդով փոխարինելուց։ Առանձին կառուցված Apache հաճախորդի համար պահպանեք Spring-WS-ի վերնագրերը հեռացնող ինտերսեպտորը։
Համաձայնեցրեք ներմուծումներն ու ուղարկողի ստեղծումը։ HttpComponentsMessageSender/org.apache.http օգտագործող հին օրինակները կիրառում են Apache 4, ոչ թե այս SimpleHttpComponents5MessageSender-ը և HttpHost ինտերֆեյսը։
Պահեք ձեռքով ստեղծված ուղարկողը SOAP հաճախորդի ողջ կյանքի ընթացքում և դրանից հետո ապահովեք դրա սովորական ոչնչացումը։ Spring-ի կողմից կառավարվող bean-ը կարող է օգտագործել կոնտեյների կյանքի ցիկլը։ Այլ ուղարկողներ պահող ձևանմուշները պահպանում են իրենց սեփական տրանսպորտային կարգավորումը։