Hello all

I have a web service with some methods - when i publish it not all methods will be exposed, but those that are exposed will call the unexposed methods

One unexposed method is addSOAPHeader, which gets called when a user is validated.

When I call the addSOAPHeader method i need to call the handleRequest/Response method with the MessageContext.

I'm doing it like this but doesn't work - the MesaageContext is null

MessageContext context = MessageContext.getCurrentContext();

handleResponse(context);

Am i missing something in my addSOAPHeader method?

Any help greatly appreciated






public static String addSOAPHeader(String token) throws Exception { Service service = new Service();

 Call call = (Call)service.createCall();

 SOAPHeaderElement tokenHeader = new SOAPHeaderElement("","TokenHeader");

 tokenHeader.setObjectValue(token);

 call.addHeader(tokenHeader);

 MessageContext context = MessageContext.getCurrentContext();

 SOAPHandler.handleRequest(context);

 return token;
}



SOAPHandler class

public void invoke(MessageContext msgContext) throws AxisFault
   {
    handleResponse(msgContext);
       super.invoke(msgContext);
   }


public static boolean handleResponse(MessageContext msgContext)
{
try
{
Message message = msgContext.getResponseMessage();
SOAPEnvelope responseEnvelope = message.getSOAPEnvelope();
SOAPHeaderElement headerElement = responseEnvelope.getHeaderByName("","TokenHeader");


if (headerElement != null)
{
String headerElementValue = (String)headerElement.getValue();


               // make sure the headerElementValue is valid
               validateTokenValue(headerElementValue);

           }
           else
           {
               // something's gone wrong

           }
       }
       catch(Exception e)
       {
           System.out.println(e);
       }

       return true;
   }

public static boolean handleRequest(MessageContext msgContext)
{
try
{
Message message = msgContext.getRequestMessage();
SOAPEnvelope requestEnvelope = message.getSOAPEnvelope();
SOAPHeaderElement headerElement = requestEnvelope.getHeaderByName("","TokenHeader");


if (headerElement != null)
{
String headerElementValue = (String)headerElement.getValue();


               // make sure the headerElementValue is valid
               validateTokenValue(headerElementValue);
           }
           else
           {
               // something's gone wrong

           }
       }
       catch(Exception e)
       {
           System.out.println(e);
       }

       return true;
   }

_________________________________________________________________
Want to block unwanted pop-ups? Download the free MSN Toolbar now! http://toolbar.msn.co.uk/




Reply via email to