You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Steve Loughran <st...@apache.org> on 2005/09/21 16:48:55 UTC
[Axis2] why is operation mandatory on Call.invoke?
Forgive my confusion here, there are so many WS-* specs, and so little
consistency.
I was under the belief that with doc/lit SOAP, all you need are docs;
SOAPAction can and should be null.
but if I try and use Call.invokeBlocking("", data) then I get told off.
What should I be putting there?
Re: [Axis2] why is operation mandatory on Call.invoke?
Posted by Glen Daniels <gl...@thoughtcraft.com>.
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
Re: [Axis2] why is operation mandatory on Call.invoke?
Posted by Steve Loughran <st...@apache.org>.
Actually much time with the debugger (including using evaluating
breakpoint to sneak in an extra timeout on an operation) and I've
tracked down my problem to
-xmlbeans generating a message with the root element name being of the
type of the XSD type (lookupSystemRequest0, but the dispatch (obviously)
being based on the name of the SOAP message (lookupSystem).
I will have to think about this, but the problem is clearly in my code...
Re: [Axis2] why is operation mandatory on Call.invoke?
Posted by Paul Fremantle <pz...@gmail.com>.
Steve
I agree.
By the way are you talking about Axis 1.x or 2 or both?
Paul
On 9/21/05, Steve Loughran <st...@apache.org> wrote:
>
>
> Forgive my confusion here, there are so many WS-* specs, and so little
> consistency.
>
> I was under the belief that with doc/lit SOAP, all you need are docs;
> SOAPAction can and should be null.
>
> but if I try and use Call.invokeBlocking("", data) then I get told off.
>
> What should I be putting there?
>