Hi guys ...

On 21/02/07, Paul Fremantle <[EMAIL PROTECTED]> wrote:
David, Sanjiva

Shouldn't we be using the SOAP role model to handle this kind of
situation. It seems to me that what you are describing is a case where
the Axis2 engine is not the ultimateReceiver (see 2.7 Relaying SOAP
Messages http://www.w3.org/TR/soap12-part1/#relaysoapmsg).

The right way to handle this is to identify what role the SOAP node
that is Axis2 is playing and do mustUnderstand checking based on that
model.


AFAICS, headers which are mustUnderstand="true" can't be relayed (see 2.7.1):

The relay attribute information item has no effect on the SOAP
processing model when the header block also carries a mustUnderstand
attribute information item with a value of "true".

(btw: I'm working with David on this) I think embedding Axis2 into a
larger system such that the whole of the larger system acts as a
single SOAP node would be a useful use case - if for example code
running outside of Axis2 would like to 'understand' headers. By
separating these out into two nodes, it looks like those headers that
are mustUnderstand true / role next can't get relayed to the second
node.

This is all kinda moot anyway and Sanjiva's suggestion seems to be the
best (only?) way of achieving this ... because ... for the piece of
the larger system, that Axis2 might be a part of, to do *all* of the
mustUnderstand either the Axis2 processed headers must have already
been removed (AIUI typically they're not) or the metadata about
flagging a header as processed needs to be flowed outside of Axis2
into the 'larger system'.

So inserting a handler to flag headers as processed and then doing the
real processing in the larger system seems to be the only option. Any
other ideas?

Thanks,
Jeremy

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to