Mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kang, Kamaljeet K." <Kamal.K.K...@tellabs.com>
Subject RE: Apache Axis 2: how to get header? Options
Date Thu, 19 Apr 2007 20:29:36 GMT
These are the changes I did to get Response SOAP header.

1) Save header in the message context in the skeleton implementation.
       MessageContext inMsgContext = MessageContext.getCurrentMessageContext();
        OperationContext operationContext = 		inMsgContext.getOperationContext();
        MessageContext outMessageContext = operationContext .getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
        outMessageContext.setEnvelope(createSOAPEnvelope());
        OMNode outHeaderNode = toOM(outHeader);
       
        outMessageContext.getEnvelope().getHeader().addChild(outHeaderNode);

2)  Modified autogenerated *InOutReceiver classes to not create new Envelope if Envelope is
already there in the context (modified whereever factory.getDefaultEnvelope() is called)

3) Modified Stub to save the return message context
               org.apache.axis2.context.MessageContext _returnMessageContext = _operationClient.getMessageContext(
                                           org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE);
                org.apache.axiom.soap.SOAPEnvelope _returnEnv = _returnMessageContext.getEnvelope();

// Added this line
_serviceClient.getServiceContext().setLastOperationContext(_operationClient.getOperationContext());


4) Finally you can get the Response Header from stub

        OperationContext oprCtxt = stub._getServiceClient().getLastOperationContext();
        MessageContext inMsgContext = oprCtxt.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
        SOAPHeader header = inMsgContext.getEnvelope().getHeader();
      
        return Header_T.Factory.parse(header.getFirstElement().getXMLStreamReaderWithoutCaching());

Not sure if there is any easier way but finally this worked for me.

Let me know if you need more help with this.


Kamal Kang


-----Original Message-----
From: José Antonio Sánchez [mailto:getaceres@gmail.com] 
Sent: Thursday, April 19, 2007 3:56 PM
To: axis-user@ws.apache.org
Subject: Re: Apache Axis 2: how to get header? Options

AFAIK you have to modify the stub code and get headers from there. In
Axis2 1.2 there is an operation in the generated stub to get the last
operation context (and so the envelope object) but it didn't work for
me.

On 4/19/07, craig wickesser <codecraig@gmail.com> wrote:
> anyone???
>
>
> On 4/18/07, craig wickesser <codecraig@gmail.com> wrote:
> > Hi...I have a client which I am using to access a web service  The
> > code I have is...
> >
> >
> >                 MyStub stub = new MyStub();
> >                 HelloWorldDocument reqDoc =
> HellWorldDocument.Factory.newInstance();
> >                 reqDoc.setName("bob");
> >
> >
> >                 HelloWorldResponseDocumnet resp = stub.SayHello(reqDoc);
> >
> >
> > The SOAP XML response is in the following form...
> >
> >
> >                 <soap12:Envelope ....>
> >                   <soap12:Header>
> >                     <ErrorResponse ....>
> >                     </ErrorResponse>
> >                     <UserInfo ...>
> >                       <Id>string</Id>
> >                       <DOB>string</DOB>
> >                     </UserInfo>
> >                   </soap12:Header>
> >                   <soap12:Body>
> >                     <HelloWorldResponse ....>
> >                       .....
> >                     </HelloWorldResponse>
> >                   </soap12:Body>
> >                 </soap12:Envelope>
> >
> >
> > My issue is I need to get stuff from the UserInfo header....how can I
> > get that?  Currently all I can get is the HelloWorldResponse from the
> > "body".
> >
> > Thanks!
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>


-- 
Saludos.
José Antonio Sánchez

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org
============================================================
The information contained in this message may be privileged
and confidential and protected from disclosure. If the reader
of this message is not the intended recipient, or an employee
or agent responsible for delivering this message to the
intended recipient, you are hereby notified that any reproduction,
dissemination or distribution of this communication is strictly
prohibited. If you have received this communication in error,
please notify us immediately by replying to the message and
deleting it from your computer. Thank you. Tellabs
============================================================

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Mime
View raw message