Hi Thilina ,
   
  I cannot find the method getLastOperationContext() in ServiceClient in 
Axis2.1.1.1.  Should it be already in the released version since I was told it 
is in nightly build back in December last year?  

  Craig, 
   
  Sorry for the confusion - I wasn't with the code in hand when I wrote the 
reply.  The line of code should be the one as given by Thilina (getEnvelope(), 
not getSoapEnvelope()). It's called from a messageContext instance, not the 
class.
   
  It's simple but it seems you cannot get to it because the 
MessageContext/OperationClient involved in the client call wasn't exposed by 
the generated Stub. I actually saw the response message by debugging into the 
generated Stub, from the line immediately after execute the call  
_returnMessageContext = 
_operationClient.getMessageContext(org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE);
   
  Shaoguang

Thilina Gunarathne <[EMAIL PROTECTED]> wrote:
  Refer to the earlier mail from Kamal Kang...

OperationContext oprCtxt = stub._getServiceClient().getLastOperationContext();
MessageContext inMsgContext =
oprCtxt.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
SOAPHeader header = inMsgContext.getEnvelope().getHeader();

Do the above after your service invocation...
This works in the client side...

~Thilina

On 4/23/07, José Antonio Sánchez wrote:
> You get this with:
>
> MessageContext.getCurrentMessageContext().getEnvelope()
>
> But remember, you cannot make this in your client code. You have to
> make it in the Stub code and then give the headers to your client code
> by other means (for example, returning a custom class instead of the
> generated class).
>
> On 4/23/07, craig wickesser wrote:
> > Shaoguang,
> > MessageContext does not have a "getSoapEnvelope" method, in fact the
> > only getter method it has is getCurrentMessageContext (at least for Axis2).
> > Any other ideas? I think I might switch to XFire to do what I need. I
> > posted over there and it sounds like in the next day or so there will be
> > support for getting the headers that I need.
> >
> > Thanks
> > Craig
> >
> >
> > On 4/22/07, Thilina Gunarathne wrote:
> > > > Do we have a default envelope set in out message context in Axis2?
> > > > In Step #1 what he does is set an envelope in out message context (with
> > the
> > > > out headers) first and then retrieve it.
> > > > outMessageContext.setEnvelope (createSOAPEnvelope());
> > > see https://issues.apache.org/jira/browse/AXIS2-2531
> > >
> > > Thanka,
> > > Thilina
> > > >
> > > > So the Step# 2 suggestion is a performace improvement only if Axis2 set
> > a
> > > > default out Envelope. I am not sure whether Axis2 does this or not. if
> > so I
> > > > think we have to stop that since there is no reason to do that.
> > > >
> > > > Amila.
> > > >
> > > > > thanks,
> > > > > dims
> > > > >
> > > > > On 4/19/07, Kang, Kamaljeet K. < [EMAIL PROTECTED]> wrote:
> > > > > > 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: [EMAIL PROTECTED]
> > > > > > Sent: Thursday, April 19, 2007 3:56 PM
> > > > > > To: [email protected]
> > > > > > 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 wrote:
> > > > > > > anyone???
> > > > > > >
> > > > > > >
> > > > > > > On 4/18/07, craig wickesser 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...
> > > > > > > >
> > > > > > > >
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > string
> > > > > > > > string
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > .....
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > >
> > > > > > > >
> > > > > > > > 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:
> > > > [EMAIL PROTECTED]
> > > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > > >
> > > >
> > ============================================================
> > > > > > 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:
> > > > [EMAIL PROTECTED]
> > > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Davanum Srinivas :: http://wso2.org/ :: Oxygen for Web Services
> > Developers
> > > > >
> > > > >
> > > >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail:
> > > > [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Amila Suriarachchi,
> > > > WSO2 Inc.
> > >
> > >
> > > --
> > > Thilina Gunarathne - http://www.wso2.com - http://thilinag.blogspot.com
> > >
> > >
> > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> >
>
>
> --
> Saludos.
> José Antonio Sánchez
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Thilina Gunarathne - http://www.wso2.com - http://thilinag.blogspot.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



       
---------------------------------
Ahhh...imagining that irresistible "new car" smell?
 Check outnew cars at Yahoo! Autos.

Reply via email to