Hi,

You have to use the XMLBeans XmlCursor API like this

ReferencePropertiesType rp = responseDoc.getCreateShibbolethBrowserSessionResponse().getShibbolethBrowserSessionReference().getReferenceProperties()Shahzad

XmlCursor xc = rp.newCursor();

Now you can use the XmlCursor API to get the Elements inside the RP.

stefan

Younas wrote:

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]






--
My place : http://user.cs.tu-berlin.de/~lischke


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



Reply via email to