Glynn, Eoghan wrote:
OK, back to the drawing board on this one :(
A quick google on this question suggests that, notwithstanding some
confusion, an empty SOAP body is actually kosher in certain
circumstances ... see for example [1].
So off the top of my head, I think we'd have to do something like the
following to make the partial/full response distinction more
bullet-proof:
1. Stop sending the wsa:RelatesTo in the partial response (this is
potentially misleading in any case)
2. Set something like a Message.IS_RESPONSE property to false in the
WS-A layer if the wsa:RelatesTo header is not present
3. Replace the ClientImpl.isPartialResponse() logic with
Boolean.FALSE.equals(inMessage.get(Message.IS_RESPONSE))
Checking via Boolean.FALSE.equals() would ensure that the ClientImpl
logic would be valid even if WS-A layer was absent (in which case the
IS_RESPONSE property would be null, but we can assume that a partial
response would never be received, as this may only occur if WS-A headers
were present in the corresponding request).
I was experimenting with WS-A soap handler set such a property when
1. it is located on the client side
(Boolean.TRUE.equals(message.get(REQUESTOR_ROLE))
2. direction fo processing is inbound
3. ReplyTo is http://schemas.xmlsoap.org/ws/2004/08/addressing/none
but the above is neater.
Just to make sure though, the property should be set in the addressing
soap handler, right?
Andrea.
Cheers,
Eoghan
[1]
http://lists.jboss.org/pipermail/jbossws-issues/2006-October/000022.html
-----Original Message-----
From: Andrea Smyth [mailto:[EMAIL PROTECTED]
Sent: 09 January 2007 09:58
To: [email protected]
Subject: Identification of Partial Responses
Further to the dicussions on the
"JaxwsInterceptorRemoverInterceptor and RM" subject on the
different ways to identify a partial response I came accross
an example of application messages with empty soap bodies.
This is in the
org.apache.cxf.systest.basicDOCBare.DOCBareClientServerTest
system test, where the response to the putLastTradedPrice
invocation is a soap message with an empty body.
Addressing is not involved.
First off, is the empty ssoap body OK and to be expected?
Secondly, if it is, what should I expect if this
client-server setup uses addressing and non-anonymous
ReplyTo? It seems we can distinguish the partial response
from the real response not by checking for an empty body
(regardless if this results in empty of no list content in the
message) but need to look also at the addressing headers ...
Any ideas?
Andrea.