cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glynn, Eoghan" <eoghan.gl...@iona.com>
Subject RE: Identification of Partial Responses
Date Tue, 09 Jan 2007 11:30:09 GMT
 

> -----Original Message-----
> From: Andrea Smyth [mailto:andrea.smyth@iona.com] 
> Sent: 09 January 2007 11:24
> To: cxf-dev@incubator.apache.org
> Subject: Re: Identification of Partial Responses
> 
> 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?

Well, setting the property in the MAPCodec (addressing SOAP interceptor)
would obviously ensure that its set as early as possible in the response
dispatch path.

But as things stand, the property would only actually be retrieved in
the ClientImpl after the entire interceptor chain has completed, so it
wouldn't really matter which interceptor actually set it (i.e. setting
it in the MAPAggregator would do equally well).

Cheers,
Eoghan

> >[1]
> >http://lists.jboss.org/pipermail/jbossws-issues/2006-October/
> 000022.htm
> >l
> >
> >
> >  
> >
> >>-----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