मैं एक JAX-WS एक तरह से विधि कॉल के लिए ग्राहक आईपी पते पाने के लिए कोड निम्न का उपयोग कर रहा:विश्वसनीय तरीका
protected HttpServletRequest getServletRequest() {
MessageContext ctx = wsContext.getMessageContext();
return (HttpServletRequest) ctx.get(MessageContext.SERVLET_REQUEST);
}
protected synchronized String getClientIp() {
String clientIp = "";
HttpServletRequest request = getServletRequest();
if (request != null) {
clientIp = request.getRemoteAddr();
// Handle proxy
String header = request.getHeader("x-forwarded-for");
if(header != null && !header.isEmpty()) {
clientIp = header.split(",")[0];
}
}
return clientIp;
}
जब एकाधिक क्लाइंट कनेक्ट होते हैं, अनुरोध के लिए पुनर्प्राप्त आईपी पता कभी-कभी पहले के अनुरोध से गलत कैश वैल्यू होता है। एक तरफा कॉल उत्प्रेरक के आईपी पते को पाने का एक विश्वसनीय तरीका क्या है?
मैं के माध्यम से ध्यान देंगे पाने के लिए अनुवर्ती कोड का उपयोग कर सकते हैं। मैं cxf-2.5.2 का उपयोग कर रहा हूँ tomcat-6.0.35 पर चल रहा है। – amo