6

I am trying to get "HttpServletRequest" in an AxisHandler's "handleMessage" method. My AxisHandler implements "SOAPHandler" as seen below code..

I need to get "HttpServletRequest" in "InBoundDirection", but it returns "null".

How can I get "HttpServletRequest" in "InBoundDirection" of SOAPHandler ?

Thank you..

@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;
}
emrah
  • 71
  • 1
  • 3

1 Answers1

0

See this post jax ws getting client ip for a very good explanation. Looks like if one wants to have a generic handler (in my case to extract the client certificate) one needs to implement the same logic for both EE container hosted webservices as well as SE hosted containers.

Community
  • 1
  • 1
JBA
  • 2,769
  • 5
  • 24
  • 40