Ρύθμιση διαμεσολαβητή Spring-WS 4.1 με HttpComponents 5
Προσαρμόστε το εργοστάσιο πελάτη HttpComponents5 του Spring-WS 4.1 και συνδέστε τον αποστολέα που προκύπτει στο 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 διατηρεί τον παρεμβολέα που αφαιρεί τα Content-Length και Transfer-Encoding που παρέχει το SOAP πριν το Apache δημιουργήσει την πλαισίωση HTTP. Η προσθήκη του προσαρμογέα διαμεσολαβητή εκεί αποτρέπει την αντικατάσταση αυτής της ενσωμάτωσης από γυμνό πελάτη. Για πελάτη Apache που δημιουργείται χωριστά, διατηρήστε τον παρεμβολέα αφαίρεσης κεφαλίδων του Spring-WS.
Ταιριάξτε τις εισαγωγές και την παραγωγή του αποστολέα. Παλαιότερα παραδείγματα με HttpComponentsMessageSender/org.apache.http χρησιμοποιούν Apache 4, όχι αυτό το SimpleHttpComponents5MessageSender και τη διεπαφή HttpHost.
Διατηρήστε έναν χειροκίνητα δημιουργημένο αποστολέα για όλη τη διάρκεια ζωής του πελάτη SOAP και φροντίστε για την κανονική καταστροφή του μετά. Ένα bean που διαχειρίζεται το Spring μπορεί να χρησιμοποιήσει τον κύκλο ζωής του περιέκτη. Άλλα πρότυπα που διατηρούν άλλους αποστολείς κρατούν τη δική τους ρύθμιση μεταφοράς.