Spring-এর WebServiceTemplate-এর জন্য একটি ফরওয়ার্ড প্রক্সি
প্রক্সি-কনফিগার করা HttpClient 5 ট্রান্সপোর্ট WebServiceTemplate-এ যুক্ত করুন এবং SOAP প্রেরকের প্রয়োজনীয় হেডার ইন্টারসেপ্টর ধরে রাখুন।
WebServiceTemplate তার WebServiceMessageSender-এর মাধ্যমে পাঠায়। SOAP গন্তব্যে ফরওয়ার্ড প্রক্সি প্রয়োজন হলে সেই প্রেরকের HTTP ক্লায়েন্ট কনফিগার করুন।
Apache HttpClient 5 উপলব্ধ থাকা Spring WS 4.1-এর জন্য:
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 প্রক্সি তালিকা থেকে একটি পাবলিক প্রার্থী হতে পারে।
কাস্টম-ক্লায়েন্ট কনস্ট্রাক্টর প্রেরকের স্বাভাবিক হেডার ইন্টারসেপ্টর যোগ করে না। ক্লায়েন্ট একত্র করার সময় এটি ধরে রাখুন: এটি Apache-র অনুরোধ প্রক্রিয়াকরণ যে SOAP-প্রদত্ত ট্রান্সপোর্ট হেডার পরিচালনা করে সেগুলি সরায়। ক্লায়েন্ট ফ্যাক্টরির ডিফল্ট দিয়ে তৈরি প্রেরক এই সংহতি ধরে রাখা আরেকটি নির্মাণ পথ।
প্রয়োজনীয় প্রক্সি শংসাপত্র ও সময়সীমা কাস্টম ক্লায়েন্টে তার নিজস্ব সমর্থিত ইন্টারফেসের মাধ্যমে যোগ করুন। প্রেরকের সেটার পদ্ধতিগুলি আগে থেকে দেওয়া ক্লায়েন্ট কনফিগার করার বিকল্প নয়।
টেমপ্লেটের কাজের ভার বহনের জন্য ক্লায়েন্ট ধরে রাখুন এবং বন্ধ করার সময় মালিকানাধীন সম্পদ বন্ধ করুন। এই উদাহরণটি HttpClient 5 প্রেরক ব্যবহার করে; org.apache.http আমদানি করা Spring WS উদাহরণগুলি অন্য ক্লায়েন্ট প্রজন্মের বর্ণনা দেয়।