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-পরিচালিত বিন কন্টেইনারের জীবনচক্র ব্যবহার করতে পারে। অন্য প্রেরক রেখে দেওয়া অন্য টেমপ্লেট নিজের পরিবহন কনফিগারেশন রেখে দেয়।

সম্পর্কিত নিবন্ধ