Hi Upul,

Thanks for your email. From messageContext I get the SOAPEnvelope of type
org.apache.axiom.soap and the same with SOAPHeader which I get from
SOAPEnvelope. Now on org.apache.axiom.soap.SOAPHeader there is no method
examineAllHeaderElements() defined. Instead I tried using
extractAllHeaderBlocks and that did not help. The method
extractAllHeaderBlocks is defined on javax.xml.soap.SOAPHeader.
Any further help is appreciated.

Thanks,
Nipa



On Fri, May 9, 2008 at 12:42 PM, Upul Godage <[EMAIL PROTECTED]> wrote:

> SOAPHeader header = env.getHeader(); gives you the <soap:Header>
> To access the header elements inside it you can use methods like,
> java.util.Iterator iterHeaderElements = header.examineAllHeaderElements()
> which will return SOAPHeaderElements
>
> Upul
>
>
> On Sat, May 10, 2008 at 12:20 AM, nipa dadbhawala <
> [EMAIL PROTECTED]> wrote:
>
>> Hi,
>>
>> I have a web service and a test client. I have written a custom handler to
>> access custom soap header sent by the client. Following is the code snippet
>> in invoke method
>>
>> public InvocationResponse invoke(MessageContext messageContext) throws
>> AxisFault
>>  {
>>      SOAPEnvelope env = messageContext.getEnvelope();
>>      SOAPHeader header = env.getHeader();
>>
>>      System.out.println("Local name = " + header.getLocalName());
>>      System.out.println("Namespace = " + header.getNamespace());
>>      System.out.println("QName = " + header.getQName());
>>       System.out.println("Text = " + header.getText());
>>
>> On the client side I have the code as follows to add the custom SOAP
>> header.
>>
>> SericeClient sc = myStub.getServiceClient();
>> sc.addStringHeader(new QName("http://www.CustomHeaders.com";,
>> "CustomHeader", "CusotmNS"), "Some Information");
>>
>> The values I am getting on the server side is as follows.
>>
>> Local name = Header
>> Namespace = [EMAIL PROTECTED]
>> QName = 
>> {http://schemas.xmlsoap.org/soap/envelope/}Header<http://schemas.xmlsoap.org/soap/envelope/%7DHeader>
>> Text =
>>
>> On the server size I also tries this code and I am getting the size as
>> zero.
>>
>> ArrayList listHeaders = msgContext.getAxisMessage().getSoapHeaders();
>>             System.out.println("listHeaders size = " +
>> listHeaders.size());
>>             for(int i =0; i< listHeaders.size(); i++)
>>             {
>>                 SOAPHeaderMessage soapHeaderMsg =
>> (SOAPHeaderMessage)listHeaders.get(i);
>>                 System.out.println("element = "
>> +soapHeaderMsg.getElement().toString());
>>                 System.out.println("message = "
>> +soapHeaderMsg.getMessage().toString());
>>                 System.out.println("Namespace URI = " +
>> soapHeaderMsg.getNamespaceURI());
>>             }
>>
>> I do not see the header I am sending through my client. Can pl. someone
>> help me with this problem?
>>
>> Thanks,
>> Nipa
>>
>>
>

Reply via email to