Hi Michael,

Michael Marks wrote:

If you use the wsa-xmlbeans for encapsulating the EndpointReference(asuming
an EndpointReference is responsed - as Stefan asked you), then the
ReferenceProperties offer the method "get(QName)".

As the ReferenceProperties is an array of xsdAny-Type, you could try
"get(0)" like for an ArrayList. The result would be an Object wich could be
casted to the correct Classtype (eg. ResourceIDType).


I think you mean the ws-fx Addressing datastructure. The ReferencePropertiesType from the wsa-xmlbeans (generated with Apache XMLBeans project) extends XmlObject and does not provide such a get Method.

Its a bit unlucky, that the ws-fx/addressing project uses a data structure, that is build ontop of the axis datatypes.

stefan

But this are all assumptions. As long, as we don't know, what you use for
deserializing and serializing your XML-Elements.

More Info would be helpful!

Michael




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]




--------------------------------------------------------------------- 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