2011-10-05 12 views
5

मैं एक्सिसहैंडलर की "हैंडल मैसेज" विधि में "HttpServletRequest" प्राप्त करने का प्रयास कर रहा हूं। मेरा एक्सिसहैंडलर कोड के नीचे देखा गया "SOAPHandler" लागू करता है ..साबुन मैसेज कॉन्टेक्स्ट में "HttpServletRequest" प्राप्त करना - एक्सिस हैंडलर

मुझे "इनबाउंडडिरेक्शन" में "HttpServletRequest" प्राप्त करने की आवश्यकता है, लेकिन यह "शून्य" देता है।

मैं SOAPHandler के "इनबाउंडडिरेक्शन" में "HttpServletRequest" कैसे प्राप्त कर सकता हूं?

.. धन्यवाद

@Override 
public boolean handleMessage(SOAPMessageContext soapMessageContext) { 
    boolean direction = ((Boolean) soapMessageContext.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY)).booleanValue();   
    if (direction) { 
     System.out.println("direction = outbound"); 
    } else { 
     System.out.println("direction = inbound"); 
     HttpServletRequest servletReq=(HttpServletRequest) soapMessageContext.get(MessageContext.SERVLET_REQUEST); 
     // BECAUSE servletReq is null the following line returns a "nullPointerException" 
     System.out.println(servletReq.getRemoteHost()); 
    } 
    return true; 
} 

उत्तर

0

एक बहुत अच्छा विवरण के लिए इस पोस्ट jax ws getting client ip देखें। ऐसा लगता है कि अगर कोई सामान्य हैंडलर (क्लाइंट सर्टिफिकेट निकालने के मामले में) को ईई कंटेनर होस्टेड वेबसाइसेस के साथ-साथ एसई होस्टेड कंटेनर दोनों के लिए एक ही तर्क को लागू करने की आवश्यकता है।

संबंधित मुद्दे