Eric, To do custom SOAP work, you should expect to read a lot of the source.
If you look at Body.java, you will see that it contains a Vector named bodyEntries that you can get with the getBodyEntries method. Further, looking at the unmarshal method, you that each element of the Vector is simply a DOM Element that is a child of the <Body> element. This is how you can access the received body. Scott Nichol ----- Original Message ----- From: "Eric Lo" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, July 10, 2002 7:35 PM Subject: Re: Help:Extracting the name of elements in user-defined provider > Oh thanks a lot, > But I seems so unlucky that even the Body class does not encapsulate any > information on the child element inside <SOAP-ENV:Body> (e.g. model, > total_qty) at all! Because when I try to print out the body content by > > System.out.println(envelope.getBody().toString()); > > I got the following output(which seems the body object didn't store the > element name "model" and "total_qty" in any fashion: > --------------------------------------------------------- > [Attributes={}] [BodyEntries= > [(0)=[ns1:methodname: null]] > ] > --------------------------------------------------------- > The incoming soap message from Tcp tunnel is like this: > >><SOAP-ENV:Body> > >> <ns1:methodname xmlns:ns1=".... > >> <model xsi:type="xsd:string">065-1439</model> > >> <total_qty xsi:type=="xsd:string">1000</model> > >> </ns1:methodname> > >> </SOAP-ENV:Body> > > --------------------------------------------------------- > > Thanks for any suggestion! > > Eric > > > > Scott Nichol wrote: > > > The Envelope gives you access to Body through Envelope#getBody. > > > > Scott Nichol > > > > ----- Original Message ----- > > From: "Eric Lo" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Tuesday, July 09, 2002 8:54 PM > > Subject: Help:Extracting the name of elements in user-defined provider > > > > > > > >>Hi, > >>I am writing my own provider by implementing the Provider interface. I > >>also need to pass the element names in the SOAP message into the > >>invoking method. > >> > >>For example, the incoming soap message is: > >>... > >><SOAP-ENV:Envelope xmlns:SOAP-ENV="...> > >><SOAP-ENV:Body> > >> <ns1:methodname xmlns:ns1=".... > >> <model xsi:type="xsd:string">065-1439</model> > >> <total_qty xsi:type=="xsd:string">1000</model> > >> </ns1:methodname> > >> </SOAP-ENV:Body> > >></SOAP-EVN:Envelope> > >> > >>And I need the pass the element name, such as ("model" and "total") into > >>the method. However, as I need to implement the provider interface, I > >>cannot access the Class "Body" (as I must conform to the locate and > >>invoke method which do not have "Body" class). How can I do this? > >> > >>Thanks! > >>Eric > >> > >>public void locate( DeploymentDescriptor dd, > >> Envelope env, > >> Call call, > >> String methodName, > >> String targetObjectURI, > >> SOAPContext reqContext ) > >> > >>public void invoke(SOAPContext reqContext, SOAPContext resContext) > >> throws SOAPException{ > >> > >>//Invoke my custom method, pass the element names (such as model and > >>total_qty) down > >> > >>} > >> > >> > > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>