You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by "PILLAI,RANJITH (HP-PaloAlto,ex1)" <ra...@hp.com> on 2003/11/13 23:48:36 UTC

RE: How to define document/literal service with multiple operatio ns

Hi Michael,

 I didn't suggest it for rpc/literal operation. I meant
Document/Literal(Message Style in axis). The operation name should match
wrapper element name for successful invocation of web service methods.

Thanks,
Ranjith Pillai.

-----Original Message-----
From: Michael Woinoski [mailto:michaelw@pineneedleconsulting.com] 
Sent: Thursday, November 13, 2003 2: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

Re: How to define document/literal service with multiple operatio ns

Posted by Michael Woinoski <mi...@pineneedleconsulting.com>.
Hi, Ranjith. Actually, I don't think document/literal and message-style are 
exactly equivalent. Document/literal is defined by the WSDL spec and is general 
term that applies to all web services, whether implemented with Axis, JWSDP, 
.NET, etc. Message-style is an Axis-specific technique for handling 
document/literal operations. The difference among document, wrapped, and message 
style is the way you write the Java implementation, not in the way the message 
is routed. If the <service> element in deploy.wsdd has "style='document'", the 
operation receives one parameter of an application-specific type (e.g., 
PurchaseOrder). If "style='message'", the operation receives a parameter of type 
org.w3c.dom.Element[], org.w3c.dom.Document, etc. But by default, the message 
routing is done the same for all document/literal operations: the qualified name 
of the child of the SOAP Body is used as the qualified name of the operation.

Regards,
Mike

PILLAI,RANJITH (HP-PaloAlto,ex1) wrote:

> Hi Michael,
> 
>  I didn't suggest it for rpc/literal operation. I meant
> Document/Literal(Message Style in axis). The operation name should match
> wrapper element name for successful invocation of web service methods.
> 
> Thanks,
> Ranjith Pillai.
> 
> -----Original Message-----
> From: Michael Woinoski [mailto:michaelw@pineneedleconsulting.com] 
> Sent: Thursday, November 13, 2003 2: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