Hi Eran!
Eran Chinthaka wrote:
When you do not get an action header when addressing is engaged, u
should throw a fault, according to the spec. I hope you know that part.
Hm. Quick question here - I think there is (or at least should be) a
difference between a Module being "engaged" and "required", right? I'm
pretty sure we had this discussion before, but the way I think this
works is as follows:
CHOICE 1 : Addressing engaged, "required" flag set false
In this case the addressing handlers are deployed, and if someone sends
us addressing headers, we'll respond with addressing headers. When
sending as a client, we'll use addressing on a per-message basis as
determined by whether the client has set the correct properties. When
generating WSDL for a service that's been configured like this, we
should see "wsa:UsingAddressing" without the wsdl:required attribute.
In this configuration, we should NOT throw a fault if we receive a
message without addressing headers (unless we're on the client side and
we sent a request with addressing headers).
CHOICE 2 : Addressing engaged, "required" flag set true
This is like the last case except that we DO require addressing in all
received messages - therefore we should throw a fault any time we don't
see the addressing headers.
CHOICE 3 : Addressing not engaged
Nothing happens.
-----
Does this sound right? The "required" flag above is a property in the
addressing module's context/configuration.
--Glen