Jeremy

I think maybe you've misread the spec.

Basically the relay attribute is a red-herring in this case, because I
for one have never seen a relay header. The model is actually
reasonably simple (excluding the relay attribute for the minute):
* headers that are not explicitly marked with a role default to be
targeted at the ultimateReceiver
* nodes should understand which roles they are playing. Any node must
always play the role of next.
* any node may process and remove any headers targeted at its roles
* it must fault if there are mustUnderstand headers targeted at its roles

Actual relaying is a further complexity but I think that is
irrelevant. The behaviour required in the previous note-chain is
exactly that provided by defining roles as I've described and as the
SOAP spec describes.

Paul

Suppose Axis2 is acting as a

On 3/8/07, Jeremy Hughes <[EMAIL PROTECTED]> wrote:
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]




--
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com

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

Reply via email to