I agree with all of your points.
I dont understand web services well enough yet so this question may be a lame one.
The SOAPAction is in the WSDL. How does that translate to the actual
SOAP message that is being sent over the wire?
The soapAction attribute value in the WSDL is the value the client should assign to the SOAPAction HTTP header in the request message. So it's set by the client, not the service.
My uneducated guess is
that it doesn't. My guess is that the server is suppose to know the
given "soap action" when it receives a given "message". Is that
correct or is there something more specific in the SOAP message that
tells the "soap action"?
I also thought I read somewhere that soapAction in the WSDL was not
suppose to be used.
I don't remember seeing that SOAPAction shouldn't be used. Basic Profile says "SOAPAction is purely a hint to processors. All vital information regarding the intent of a message is carried in soap:Envelope." Now exactly what "intent" means, I don't know. Does "intent" include "ultimate destination of message"? Beats me.
I may be wrong about that. At this point I have too much reading in my small brain to keep it all straight.
Ah yes, that bursting skull sensation...
Mike
Keith
-----Original Message-----
From: Michael Woinoski [mailto:[EMAIL PROTECTED] Sent: Thursday, November 13, 2003 5:48 PM
To: [EMAIL PROTECTED]
Subject: Re: How to define document/literal service with multiple
operations
Keith,
With document/literal web services you need to define your schema in such a way that the "wrapper" element or root element will lead you to the business function. So you are not just defining the data that
needs
to be sent but also a wrapper element that suggests the operation to
be
performed.
Well, that may be the way Axis currently routes messages, but I prefer
to develop my application's schema based on what is appropriate for the application, not because of the limitations imposed by a particular implementation. This is exactly the kind of situation that SOAPAction is
supposed to address. .NET uses it for routing messages, so I know Axis
HAS to support it ;-) I suspect it's just a matter of configuring
HTTPActionHandler correctly.
Also, I'd like to keep my web services portable to different JAX-RPC implementations, so I try to avoid Axis-specific features (e.g.,
Message-style services.)
Read the axis users guide about "service styles" specifically the "message", "document" and "wrapped" service styles.
I did. I didn't find anything in the user's guide about the details of
routing document-style services.
Regards, Mike
-----Original Message-----
From: Michael Woinoski [mailto:[EMAIL PROTECTED] Sent: Thursday, November 13, 2003 4:47 PM
To: Axis User mailing list
Subject: How to define document/literal service with multiple
operations
How can I define a document/literal service with multiple operations?
Because there's no wrapper element around the input message parts, Axis seems
to
have a problem invoking the correct service method.
If I add a value for SOAPAction in the service's binding, the client
stubs set SOAPAction in the HTTP request correctly, but Axis doesn't use the
SOAPAction value. I found the Axis HTTPActionHandler class and tried adding it to
the request flow in the service's deploy.wsdd but it didn't seem to make a
difference. Does Axis support this? If so, how do I configure it?
Thanks, Mike
--
Mike Woinoski Pine Needle Consulting mailto:[EMAIL PROTECTED]