I think msgContext.getEnvelope().getHeader().examineAllHeaderBlocks();
should return an iterator of header blocks.  Check whether any headers exist
in the SOAP message by using a tool like TCPMon or printing or debugging the
SOAP envelope.

Upul


On Tue, May 13, 2008 at 2:32 AM, nipa dadbhawala <[EMAIL PROTECTED]>
wrote:

> Hi Upul,,
> I also tried the following code and it is giving me ClassCastEception on
> the highlighted line. ANy help would be appreciated.
>
>
> SOAPEnvelope env = msgContext.getEnvelope();
>
>
>         if(env != null)
>         {
>
>             SOAPHeader header = env.getHeader();
>
>             SOAPHeaderImpl impl = new SOAPHeaderImpl(header);
>
>            System.out.println("SOAPHeadewrImpl got created");
>             Iterator it = impl.examineAllHeaderElements();
>             if(it != null)
>             {
>                 while(it.hasNext())
>                 {
>
>                     SOAPHeaderElement element
> =(SOAPHeaderElement)it.next();
>                     Name name = element.getElementName();
>                     System.out.println("SOAPHeaderElement element name = "
> + name.toString());
>                     System.out.println("SOAPHeaderElement node name/value
> = " + element.getNodeName()  + " " + element.getNodeValue());
>                     System.out.println("SOAPHeaderElement element prefix =
> " + element.getPrefix());
>
>
>
>                 }
>             }
>
> Thanks,
> Nipa
>
>
> On Fri, May 9, 2008 at 4:56 PM, nipa dadbhawala <[EMAIL PROTECTED]>
> wrote:
>
> > 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