Dan Diephouse wrote:
Quick question regarding #2 - Do other RM implementations include a
RelatesTo header in partial responses?
Also, could we determine if its a partial response by checking to see
if the
Action is a SequenceAcknowledgement?
No, partial responses do not have the action set.
A message with action SequenceAcknowledgement indicates that the
underlying message is a oneway, and was issued by an RMSource
out-of-band (e.g. when a timer signals as opposed to when the client
makes an invocation/the server sends a response). It also has an empty
body (info is carried in the SequenceAcknowledgement header).
When SequenceAcknowledgemens are piggybacked on an application message (
in case of anonymous AcksTo on partial responses, in case of acksTo==
replyTo on full responses), the action is that of the underlying
application message (null in case of partial responses).
Andrea.
- Dan
On 1/9/07, Glynn, Eoghan <[EMAIL PROTECTED]> 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).
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.
>