axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anne Thomas Manes <atma...@gmail.com>
Subject Re: web service style
Date Mon, 09 Jan 2006 19:29:59 GMT
In both RPC and Document style, the SOAP Body should have at most one child
element.

In Document style, the child element of the SOAP Body has the QName of the
element specified in the message part.

In RPC style, the child element of the SOAP Body has a local name that is
the same as the operation name. The namespace comes from the namespace
attribute in the <wsdlsoap:body> definition.

In both cases you should use the QName of the child element of the SOAP Body
to dispatch the request.

Anne

On 1/9/06, Eran Chinthaka <chinthaka@opensource.lk> wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi Anne,
>  First, please forgive me for jumping in to some other thread and
> asking this question. But since you have provided some useful info abt
> WSDL Document and RPC styles, thought of asking my q here itself.
> This is important for Axis2 SOAPBodyBasedDispatcher.
>
> You have mentioned that in RPC style, "the SOAP body contains a
> dynamically constructed structure comprising a *root element with a
> local name that comes from the operation name*" . If I understood
> correct, is it correct to assume that the messages coming to this
> service in RPC styles, SHOULD contain the qname of the operation as
> the body first child name.
> I can remember some one pointed me saying that the body first child
> name can also be the name of message element as well of that operation.
>
> What do you think ?
>
> - -- Chinthaka
>
> Anne Thomas Manes wrote:
>
> > WSDL defines two styles:
>
> >
>
> > - Document: It means that the SOAP body contains a document
>
> > comprising a single root element with any number of child
> elements.
>
> > The WSDL message definition contains at most one body part, and
>
> > that part must reference an element definition in the
> <types>
>
> > section. Because the element definition must always be defined
> by a
>
> > schema, all document style services must use="literal". From a
> WSDL
>
> > perspective, this is the default style. If your WSDL binding
>
> > doesn't specify a style, it means it is document style. - RPC: It
>
> > means that the SOAP body contains a dynamically constructed
>
> > structure comprising a root element with a local name that comes
>
> > from the operation name, and a set of child elements that
>
> > represents the operation/method parameters. The WSDL message
>
> > definition contains one body part for each parameter, and each
> part
>
> > must reference a type definition. The local names of the child
>
> > elements come from the names specified in the message parts. As I
>
> > said, the structure is dynamically constructed, and it can be
>
> > constructed in two ways. Either it can be constructed literally
>
> > according to the defined parameter types (use="literal") or
>
> > according to the SOAP encoded data model (use="encoded"). From an
>
> > Axis perspective, the default style is rpc/encoded. If you
> generate
>
> > the service from code and don't specify a style, Axis will
> generate
>
> > rpc/encoded.
>
> >
>
> > Unfortunately, Axis overloads the term "style" in the WSDD. WSDD
>
> > defines four styles that correspond to three different service
>
> > aspects: the WSDL type (rpc vs document), the provider type
>
> > (java:RPC versus java:MSG), and the programming type (parameter
> vs
>
> > object vs DOM inputs):
>
> >
>
> > - RPC: Axis generates an rpc/encoded (by default) or rpc/literal
>
> > (if use="literal" is also specified) service that uses the
> java:RPC
>
> > provider and supports a parameter programming model. - WRAPPED:
>
> > Axis generates a document/literal service that conforms to the
>
> > wrapped convention. It uses the java:RPC provider and supports a
>
>
> > parameter programming model. (From the programmed perspective,
> this
>
> > is basically equivalent to RPC style.) - DOCUMENT: Axis
> generated a
>
> > document/literal service that uses the java:RPC provider and
>
> > supports an object programming model. (From the programming
>
> > perspective, this is very similar to RPC style, but you must
> bundle
>
> > your parameters into a single object.) - MESSAGE: Axis generates
> a
>
> > document/literal service that uses the java:MSG provider and
>
> > supports a DOM programming model.
>
> >
>
> > Anne
>
> >
>
> > On 1/8/06, Dink <tclo@ms.iii.org.tw> <tclo@ms.iii.org.tw> wrote:
>
> >
>
> >> Hi Dies,
>
> >>
>
> >> I have noticed your answer does not include the "Message"
> style
>
> >> and the most confusing thing is about it. I can not realize
> what
>
> >> the message style means since it is not defined in WSDL spec.
>
> >> Can you point me some directions or any document? Besides, I
> have
>
> >> found the axis user guide define the service provider can be
>
> >> either RPC or MSG. However, there is no clear definition of
> RPC
>
> >> and MSG in the axis user guide. Do the MSG mean the service
> style
>
> >> is "Message" described above? Is there any relationship
> between
>
> >> "service provider" and "use/style"?
>
> >>
>
> >> Thanks for your reply, Dink Lo
>
> >>
>
> >> Dies wrote:
>
> >>
>
> >>> Hello Dink,
>
> >>>
>
> >>> The JAX-RPC 1.1 spec describes the "wrapped" style
> briefly. It
>
> >>> is a variation of Document/literal, and is the
> recommended
>
> >>> style/use to use.
>
> >>>
>
> >>> With Axis, you have: Document/literal(wrapped): -s
> WRAPPED -y
>
> >>> literal Document/literal: -s DOCUMENT -y literal
> RPC/literal:
>
> >>> -s RPC -y literal RPC/encoded: -s RPC -y encoded
>
> >>>
>
> >>> I have never seen Document/encoded, maybe Axis doesn't
> even
>
> >>> support it.
>
> >>>
>
> >>> #In case of Document/literal(wrapped), the WSDL says
>
> >>> style="document", but SOAP engines use some criteria to
>
> >>> recognize that they are "wrapped". The WSDD says
> "wrapped" if
>
> >>> it recognized a Document/literal port as being
>
> >>> Document/literal(wrapped).
>
> >>>
>
> >>> Regards, Dies
>
> >>
>
> >>
>
> >
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.2 (MingW32)
>
> iD8DBQFDwpSSjON2uBzUhh8RAtDsAJ94Losqva/5HNKMpf8cI0sqronCZwCgmItp
> SgyetrNiRrqCCFbP0zHyOVg=
> =ZnxE
> -----END PGP SIGNATURE-----
>
>

Mime
View raw message