That looks like a nice easy way! But...
MessageElement resourceIDElement = responseDoc.getCreateShibbolethBrowserSessionResponse().getShibbolethBrowser SessionReference().getReferenceProperties().get(qname); When I do this, it complains that "get" method is not defined. This is because a "ReferencePropertiesType" is returned by the getReferenceProperties() method. How can I resolve this? Thanks Shahzad -----Original Message----- From: Michael Marks [mailto:[EMAIL PROTECTED] Sent: 22 March 2005 13:38 To: [email protected] Subject: Re: extracting the resource ID Hi Shahzad, using the wsfx-addressing and wsa-xmlbeans - way, your solution could look like that: QName qname = new QName("http://ShibbolethBrowserSession/ShibbolethBrowserSession.wsdl","Resou rceID"); MessageElement resourceIDElement = epr.getReferenceProperties().get(qname); String id = resourceIDElement.getNodeValue(); Good Luck Michael > Hi Shahzad, > > Sorry for my last mail. I did not read, that you mean the client side. > I have some questions to your use case. It seems, you are returning a > WS-A endpointreference which contains your id as a ResourceProperty. > On the client side, there are also many ways to rome :-) > > First one: > you could make use of the WSFX-Addressing project. Just create a wsdl > which makes use of ws-addressing endpointreference type and generate > the client code with the "normal" Axis Framework and the > wsfx-addressing project. > If you choose this way and you need more to know, on how to achieve > this please ask. > > Second one: > you could use XMLBeans on the client side too. Just parse the response > Body into your XMLBean and use the methods from XMLBeans to extract > the RP. There is also a wsa-xbeans library out there, which you could use. > > Just gimme more info :-) > > stefan > > Stefan Lischke wrote: > > > Hi Shahzad, > > > > There are many way to do this. > > > > The first one: > > > > In your service Methode, just call: > > > > Resource rs = getResource(); > > Object id = rs.getID(); > > > > the second one, > > In your service Methode, just call: > > ResourceKey rk =getResourceKey() > > Object id = rk.getValue(). > > > > But remember you Service must extend the AbstractPortType, or one of > > the classes that extends AbstractPortType > > > > hope that helps > > > > stefan > > > > Shahzad Younas wrote: > > > >> Hi, > >> > >> I am trying to (on the client side) extract the resource ID from a > >> soap body of an incoming message. > >> > >> byte[] tmp = senv.getBody().getFirstChild().toString().getBytes(); > >> ByteArrayInputStream byteInput = new ByteArrayInputStream (tmp); > >> CreateShibbolethBrowserSessionResponseDocument responseDoc = > >> > CreateShibbolethBrowserSessionResponseDocument.Factory.parse(byteInput > ); > >> log.info("ID:" + > >> > responseDoc.getCreateShibbolethBrowserSessionResponse().getShibbolethBrowser SessionReference().getReferenceProperties()); > >> > >> > >> However, this prints out: > >> > >> ID:<xml-fragment > >> > xmlns:shib="http://ShibbolethBrowserSession/ShibbolethBrowserSession.xsd" > >> xmlns:add="http://schemas.xmlsoap.org/ws/2004/08/addressing" > >> > xmlns:shib1="http://ShibbolethBrowserSession/ShibbolethBrowserSession.wsdl"> > >> > >> > <shib1:ResourceID>ShibbolethBrowserSessionResource1</shib1:ResourceID> > >> </xml-fragment> > >> > >> How can I JUST extract the "ResourceID" ? I cant seem to see any > >> "get" methods for going this. > >> > >> Thank you > >> Shahzad > > > > > > > > > > > -- > My place : http://user.cs.tu-berlin.de/~lischke > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
