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