axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anne Thomas Manes" <a...@manes.net>
Subject Re: document/literal
Date Fri, 23 May 2003 17:00:45 GMT
While I agree that message-oriented architecture is different from
service-oriented architecture, I want to clarify that SOAP document-style
doesn't necessarily correspond to message-oriented architecture.

Message-oriented architecture is more related to the message exchange
pattern (asynchronous one-way queuing versus synchronous request/response).

RPC versus document-style is simply a message formatting issue. For
request/response operations, you can use either style to accomplish exactly
the same thing. Your WSDL fully describes the message structure, and there's
no reason why a WSDL compiler/SOAP runtime can't auto-generate the SOAP body
when using document-style.

As I mentioned in my previous message, many SOAP implementations don't
really distinguish between rpc/encoded versus document/literal in the
programming API. It's simply a setting that you select when you generate
your WSDL. The setting tells the SOAP runtime how to construct the SOAP
messages.

For anyone that might be interested in making sure that Axis fully supports
doc/literal (in a manner that's competitive with the commercial
implementations), I suggest you spend a moment playing with an
implementation like .NET, WASP, or GLUE. These products generate doc/literal
by default. An Axis developer shouldn't need to manually construct the SOAP
body in order to communicate with a service developed using one of these
products.

Best regards,
Anne

----- Original Message -----
From: "SECRIST,MARK S (HP-FtCollins,ex1)" <mark.secrist@hp.com>
To: <axis-user@ws.apache.org>
Sent: Friday, May 23, 2003 12:33 PM
Subject: RE: document/literal


> No, I don't think it explicitly constructs the SOAP envelope, it does
> explicitly construct the body though.  I believe you would do something
like
> the following to reference the method.
>
>   call.setUseSOAPAction(true);
>   call.setSOAPActionURI("yourMethodName");
>
> One key thing to keep in mind in document exchange is that it is
> fundamentally a different paradigm from rpc.  Not that the mechanics are
> different, but you have to think a little differently.  I think of it as
> specifying what method will handle the document I've sent.  It turns out
> that Axis will infer the method, especially if you only have one.
>
> Hope this helps,
>
> Mark
>
> -----Original Message-----
> From: Tamas Hauer [mailto:tamas.hauer@cern.ch]
> Sent: Friday, May 23, 2003 10:55 AM
> To: axis-user@ws.apache.org
> Subject: Re: document/literal
>
>
>
> Thanks a lot Mark,
>
> > When you use doc/literal, the operation name generally won't show up as
> part
> > of the soap body.
>
> So what's the politically correct way of calling the method then?  The
> following seems to work but not very pretty:
>
> call.addParameter("methodname", argument_qname ... );
> call.invoke( new Object[] { argument } );
>
> > If you have multiple methods supported in the web
> > service, you can set SOAPAction to the method name.  Have a look at the
> > message example in the samples directory of the Axis distribution.
> Although
> > I don't personally believe this is the best way to do document exchange
> > style web services, it at least gives you an idea of how it can be done
in
> > Axis.
>
> Thanks, I will look at it carefully.  At first sight this appears to
> explicitly construct the soap envelope which is not really what I
> would expect to be the most efficient and foolproof way.
>
> Tamas
>
> --
> -------------------------------------------------------------------
> --      Tamas Hauer          ETT Division, CERN
>      Tamas.Hauer@cern.ch      Geneve 23 Switzerland 1211
>   http://cern.ch/Tamas.Hauer  Tel:(41)-227672342  Fax:(41)-227678930
>


Mime
View raw message