Dan Diephouse wrote:

On 1/8/07, Andrea Smyth <[EMAIL PROTECTED]> wrote:


Dan Diephouse wrote:

> I think that anything before unmarshalling should be pretty resilient
> to any
> type of message. But unmarshalling may be specific from service to
> service.
> So I'm cool with starting a new chain which starts after the
> RmSoapInterceptor.
>
> Regarding the partial response check - I thought we decided we were
> going to
> set a property which signals that the message isn't destined for the
> client.
> This way we have a general mechanism for other WS-* specs as well. for
> example:
>
> // determine whether the message was redispatched to RM or somewhere
else
> boolean redispatched = Boolean.TRUE.equals(message.get(REDISPATCHED));
>
> Other possible property names might be REROUTED, INTERCEPTED, or
> FORWARDED.

Well that's not the case for now - and I am not sure where exactly this
property should be set. It may require changes to several interceptors
to make them aware of the possibly empty soap bodies and in such a case
identify the message as a partial response.



Wouldn't it just be set in the RMSoapInterceptor?

if (wsaAction.equals(createSequence)) message.put(REDISPATCHED, Boolean.TRUE
));

In general I'd prefer if we could make it a policy for interceptors to

simply do NOTHING rather than deciding to take some default action (in
the case of the BareInInterceptor: set the content of the in message to
an empty list)  when they do encounter 'abnormal' messages.



I'm not sure I understand. How are we supposed to know if there is an error
then?

Sorry, did not respond to the last question. It's not really errors I am talking about but situations like the one I mentioned: The BareInInterceptor (on the client side) processes a partial response to a twoway request, and it can from the operation info infer that there should be content in the soap body. Currently this inconsistency is "resolved" by setting the list content of the in message to an empty list.

- Dan


Reply via email to