axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Woinoski <micha...@pineneedleconsulting.com>
Subject Re: How to define document/literal service with multiple operatio ns
Date Fri, 14 Nov 2003 01:17:43 GMT
Keith,

> Can you cut and paste the part of the WS-I profile that recommends
> RPC/literal? I missed that when I read it.

  R2705   A wsdl:binding in a DESCRIPTION MUST use either be a
	 rpc-literal binding or a document-literal binding.

I should have said "the WS-I Basic Profile forbids rpc-encoded" rather than 
"rpc-literal is recommended in the WS-I Basic Profile". Obviously, 
document-literal is also supported (and I would guess preferred, at least for 
the near future).

> Its interesting that the JAX-RPC spec says that an implementation may
> support RPC/literal but doesnt have to.  That right there would be
> enough for me to never implement RPC/literal using Java.

Excellent point. However, now that the WS-I favors rpc-literal, I wonder if next 
version of the JAX-RPC will require support for rpc-literal.

> It seems to me that the SOAP spec needs a SOAPOperation part that
> loosely (more loosely than rpc with methods and parameters but tighter
> than the "wrapper" element convention that is not defined anywhere). The
> SOAPOperation section of the SOAP message would provide the operation to
> be performed and the expected return "message".  The SOAP body would
> simply have the document/literal data and would not have anything about
> operations.
> 
> In other words I want the loose coupling of document/literal with a more
> defined way to realize the operation to be performed and the expected
> return document/literal message.  The "wrapper" element way of handling
> this is a convention that is not defined anywhere in the WSDL spec or
> the SOAP spec. Its a programmer way of handling the problem not a
> standard.

You're right, it does seem like a hole in WSDL and SOAP specs. It seems that 
using the qualified name of the operation as the value of SOAPAction would solve 
the problem, but the semantics of SOAPAction aren't defined anywhere.

Regards,
Mike

> I guess one way to avoid all of this is to have one document/literal web
> service per operation but I dont think anyone recommends that.
> 
> 
> Keith
> 
> -----Original Message-----
> From: Michael Woinoski [mailto:michaelw@pineneedleconsulting.com] 
> Sent: Thursday, November 13, 2003 5:35 PM
> To: axis-user@ws.apache.org
> Subject: Re: How to define document/literal service with multiple
> operatio ns
> 
> Hi, Ranjith. What you are suggesting is basically an rpc-literal
> operation. 
> Several postings to this list have mentioned that rpc-literal is not
> (yet) 
> supported by all Web service implementations (even though it is
> recommended in 
> the WS-I Basic Profile), so I'd prefer to avoid rpc-literal for
> interoperability.
> 
> That leaves using SOAPAction for routing document-literal operations. It
> sounds 
> like the HTTPActionHandler should do it but I haven't figured out how to
> 
> configure it.
> 
> Thanks,
> Mike
> 
> PILLAI,RANJITH (HP-PaloAlto,ex1) wrote:
> 
> 
>>Hi Michael,
>>
>>I hope you are using Message style service here.
>>I don't how to add this to axis client. But u can edit your SOAP
> 
> message
> 
>>directly if you are using tcpmon. So in tcpmon add another
> 
> element(your
> 
>>operation name)directly under soap body. For some reason axis client
> 
> is not
> 
>>doing this(if you find please let me know too :)).
>>
>>For eg: if you look into your tcpmon, you can see under soap body,
> 
> your
> 
>>document is appended directly with out a wrapper element.
>>
>><soapenv:Body>
>>	<your document>
>></soapenv:Body>
>>
>>so edit it like this...
>>
>><soapenv:Body>
>>	<your-method-name>
>>		<your document>
>>	</your-method-name>
>></soapenv:Body>
>>
>>then resend tcpmon.
>>
>>This way you can invoke any method in your webservice. Unfortunately I
> 
> don't
> 
>>know to write an axis client for this.
>>
>>Hope this helps(Not a complete answer, but partial).
>>
>>Cheers,
>>Ranjith Pillai.
>>
>>
>>
>>-----Original Message-----
>>From: Michael Woinoski [mailto:michaelw@pineneedleconsulting.com] 
>>Sent: Thursday, November 13, 2003 1: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:michaelw@pineneedleconsulting.com


Mime
View raw message