On 4/20/07, Davanum Srinivas <[EMAIL PROTECTED]> wrote:
Kamaljeet, Step #2 is a good enchancement request. we should be generating code with that snippet. Can you please log a jira request? Amila, Can you please review this?
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()); 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 <[EMAIL PROTECTED]> wrote: > > anyone??? > > > > > > On 4/18/07, craig wickesser <[EMAIL PROTECTED]> 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: [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.
