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 ಉದಾಹರಣೆಗಳು ಇನ್ನೊಂದು ಕ್ಲೈಂಟ್ ಪೀಳಿಗೆಯನ್ನು ವಿವರಿಸುತ್ತವೆ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು