Hi Steve!

Forgive my confusion here, there are so many WS-* specs, and so little consistency.

Heh. :)  And so many usage patterns of the specs that are there, even...

I was under the belief that with doc/lit SOAP, all you need are docs; SOAPAction can and should be null.

Not necessarily. SOAPAction is commonly used to dispatch on a per-operation or even per-message basis, and this isn't changed by RPC-ness or doc/lit-ness. There might be operation-specific values regardless.

It's true that if you are JUST thinking about SOAP the protocol, as opposed to a service as declared in a WSDL, you could just drop some content into a message and send away without knowing anything else. However, the common case today is in fact a service that is either described by WSDL or at least looks a lot like the WSDL model - even though it may be doc/lit, there are still "operations" which have semantics associated with them, which in addition to what they *do*, might include different per-operation policies, etc.... So Axis2 wants to know what operation you're using so that it can engage any operation-specific Modules, for instance.

That said, there are certainly use cases where you don't know/care what operation is in use, so I think you have a point. However, operations are also where MEPs live - so you do somehow need to tell Axis2 that a response is expected for in/out MEPs......

but if I try and use Call.invokeBlocking("", data) then I get told off.

What should I be putting there?

We could make the operation arg optional, and also provide invokeBlocking(data), which would simply use whatever global settings are in effect for Modules, policy, etc. I guess we'd default to the req/resp MEP?

Alternately, you could just create a new OperationDescription()....

--Glen

Reply via email to