cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrea Smyth <andrea.sm...@iona.com>
Subject Re: Identification of Partial Responses
Date Tue, 09 Jan 2007 16:41:13 GMT
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 <eoghan.glynn@iona.com> 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:andrea.smyth@iona.com]
>> > Sent: 09 January 2007 09:58
>> > To: cxf-dev@incubator.apache.org
>> > 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.
>> >
>>
>
>
>


Mime
View raw message