Proksi hadapan untuk WebServiceTemplate Spring
Sambungkan pengangkutan HttpClient 5 yang dikonfigurasikan dengan proksi ke WebServiceTemplate dan kekalkan pemintas pengepala yang diperlukan oleh penghantar SOAP.
WebServiceTemplate menghantar melalui WebServiceMessageSender-nya. Konfigurasikan klien HTTP penghantar itu apabila destinasi SOAP memerlukan proksi hadapan.
Untuk Spring WS 4.1 dengan Apache HttpClient 5 tersedia:
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 ialah templat sedia ada aplikasi. URI perkhidmatan SOAP-nya kekal sebagai destinasi; klien HTTP memegang perantara, yang boleh menjadi calon awam daripada senarai proksi HTTP apabila laluan itu dibenarkan.
Pembina klien tersuai tidak menambah pemintas pengepala biasa penghantar. Kekalkannya semasa memasang klien: ia membuang pengepala pengangkutan yang disediakan SOAP yang diuruskan oleh pemprosesan permintaan Apache. Penghantar yang dibina melalui lalai kilang klien ialah laluan pembinaan lain yang mengekalkan integrasi ini.
Tambah kelayakan proksi dan had masa yang diperlukan pada klien tersuai melalui antara muka sokongannya sendiri. Kaedah setter penghantar bukan pengganti untuk mengkonfigurasi klien yang telah disediakan.
Kekalkan klien untuk beban kerja templat dan tutup sumber yang dimiliki semasa dimatikan. Contoh ini menggunakan penghantar HttpClient 5; contoh Spring WS yang mengimport org.apache.http menerangkan generasi klien yang lain.