Ένας πρόσθιος διακομιστής μεσολάβησης για το WebServiceTemplate του Spring
Συνδέστε μια μεταφορά HttpClient 5 ρυθμισμένη με διακομιστή μεσολάβησης στο WebServiceTemplate και διατηρήστε τον απαιτούμενο παρεμβολέα κεφαλίδων του αποστολέα SOAP.
Το WebServiceTemplate στέλνει μέσω του WebServiceMessageSender του. Ρυθμίστε τον πελάτη HTTP αυτού του αποστολέα όταν ο προορισμός SOAP απαιτεί πρόσθιο διακομιστή μεσολάβησης.
Για Spring WS 4.1 με διαθέσιμο Apache HttpClient 5:
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 είναι το υπάρχον πρότυπο της εφαρμογής. Το URI της υπηρεσίας SOAP παραμένει ο προορισμός· ο πελάτης HTTP κρατά τον ενδιάμεσο, ο οποίος μπορεί να είναι δημόσιος υποψήφιος από τη λίστα διακομιστών μεσολάβησης HTTP όταν η διαδρομή αυτή επιτρέπεται.
Ο κατασκευαστής προσαρμοσμένου πελάτη δεν προσθέτει τον συνήθη παρεμβολέα κεφαλίδων του αποστολέα. Διατηρήστε τον κατά τη συναρμολόγηση του πελάτη: αφαιρεί κεφαλίδες μεταφοράς που παρέχει το SOAP και τις οποίες διαχειρίζεται η επεξεργασία αιτημάτων του Apache. Ένας αποστολέας που χτίζεται μέσω των προεπιλογών του εργοστασίου πελατών είναι άλλη διαδρομή κατασκευής που διατηρεί αυτή την ενσωμάτωση.
Προσθέστε τα απαιτούμενα διαπιστευτήρια διακομιστή μεσολάβησης και τα χρονικά όρια στον προσαρμοσμένο πελάτη μέσω των δικών του υποστηριζόμενων διεπαφών. Οι μέθοδοι setter του αποστολέα δεν υποκαθιστούν τη ρύθμιση ενός πελάτη που έχει ήδη παρασχεθεί.
Διατηρήστε τον πελάτη για τον φόρτο εργασίας του προτύπου και κλείστε τους πόρους που κατέχετε κατά τερματισμό. Αυτό το παράδειγμα χρησιμοποιεί τον αποστολέα HttpClient 5· παραδείγματα Spring WS που εισάγουν το org.apache.http περιγράφουν άλλη γενιά πελάτη.