If you have an empty message, then you aren't following the wrapped
convention. The wrapped convention requires that the input message
contain an element whose local name is the same as the operation, and
the output message contain an element whose local name is the
operation appended with "Response". (Essentially it literally follows
the RPC convention so that programming frameworks can support an
RPC-style programming model, yet still implement a doc/literal
message.)

For your example, to use wrapped doc/literal, you should define the
response message as:

<message name="wsns:testResponseMessage">
   <part name="parameters" element="myns:testResponse/>
</message>

(.NET further requires that the part name = "parameters")

The wrapped convention was established by .NET. It is the default
format generated by .NET. The Java community responded in order to
interoperate more effectively with .NET. The JAX-RPC spec is the only
formal specification that defines the wrapped convention.

You are under no obligation to support the wrapped convention, but if
you want to enable interoperability with .NET, you'll find things go
much more easily if you follow it.

Note that WS-I BP does require that all input messages have a unique
signature. If you have more than one operations that accept no input,
you must disambiguate the request messages some way. I always
recommend following the wrapped convention just because it makes
things easier.

Anne

On 4/1/07, Rishi krish <[EMAIL PROTECTED]> wrote:
Hi Anne
thanks for the clarification. I am wondering if what you said for RPC type
is also valid for the wrapped doc-lit type too [which kind of similar to rpc
literal type and which is followed by .Net]. I mean if a pojo service method
signature reads --

public void test(String s)

The response wsdl message will have a part element like ---

<message name="wsns:testResponseMessage">
<part name="output" element="myns:testResponse/>
</message>

-right? as opposed to having no part defined like ----


<message name="wsns:testTesponseMessage">
</message>

I am generating the service wsdl on my own and am integrating to .Net
paltform [.Net is the client]. Since .Net seems to be following the wrapped
doc-lit style do you think I should generate the wsdl response message with
a non-empty part as shown above [even though the pojo method has void return
type]

This will imply that for a request response kind of web service we allways
need to have a response message with one part element to be compliant with
.Net? That seems little to harsh for me as I didnt find any such requirement
in BP 1.1 OR this is something that is introduced just because of .Net?

thanks
Rishi
On 3/31/07, Anne Thomas Manes <[EMAIL PROTECTED]> wrote:
>
> It depends on the style.
>
> If you are using document style, an empty message declaration with no
> parts (either input or output) will generate an empty SOAP body.
>
> If you are using rpc style, an empty input message declaration will
> generate a SOAP body containing an element that has a local name equal
> to the operation name in the namespace specified in the <soap:body>
> declaration in the binding. An empty output message declaration will
> generate a SOAP body containing an element representing the response
> value (in this case, void). The name of the response element is not
> significant, but by convention it has a local name constructed from
> the operation name appended with "Response" and it is in the namespace
> specified in the <soap:body> declaration.
>
> Anne
>
> On 3/30/07, Rishi krish < [EMAIL PROTECTED]> wrote:
> > Also just wanted to show what the TCP monitor is howing for the response
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <soapenv:Envelope
> >
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:xsd=" http://www.w3.org/2001/XMLSchema "
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
> >  <soapenv:Body/>
> > </soapenv:Envelope>
> >
> >
> > So the body elemet is empty and the wsdl snippet is below:
> >
> >
> >   <message name="AddrMessage">
> >     <part name="input" element="inx:Address" />
> >   </message>
> >   <message name="AddrMessageResponse" />
> >   <portType name="AddrPortType">
> >     <operation name="processAddr">
> >       <input message="inws:AddrMessage" />
> >       <output message="inws:AddrMessageResponse" />
> >     </operation>
> >   </portType>
> >
> > Note the AddrMessageResponse definition - thats empty too. So can I
conclude
> > that an empty wsdl"message definition would imply a empty soap body
element
> > in wire?
> >
> > thanks
> > Rishi
> >
> > On 3/30/07, Amila Suriarachchi < [EMAIL PROTECTED]> wrote:
> > >
> > >
> > >
> > > On 3/29/07, Rishi krish <[EMAIL PROTECTED] > wrote:
> > > >
> > > > Hi All
> > > > This is probably a generic wsdl question - I will be using a the
Axis2
> > serviceclient api to call a web service which has a wsdl operation [with
> > http binding] the outpout of which refers to a wsdl:message which has no
> > parts defined. I am wondering what that means for the service response?
> > >
> > >
> > > http binding has not clearly defined in wsdl 1.1. so if you deal with
http
> > bindings better to use WSDL 2.0
> > >
> > >
> > > >
> > > > A>the response would be an empty soap body
> > >
> > >
> > > if you use http binding you would not get any soap messages. So we can
> > throw this option.
> > > Actually this is the case if you have above serario with a
> > document/literal binding.
> > >
> > >
> > > >
> > > > B>The response would be just an http response with no trace of soap.
[no
> > soap envelope]
> > >
> > >
> > > I think this should be the case.  the problem here is that wsdl 1.1
spec
> > does not clearly specify whether we have to use the rpc type message
> > construction or document type message construction with http binding.
> > >
> > >
> > > >
> > > > Can anyone pls confirm what should be the response if the
service/soap
> > engine is behaving correctly?
> > > >
> > > > --
> > > > thanks
> > > > Rishi
> > >
> > >
> > >
> > > --
> > > Amila Suriarachchi,
> > > WSO2 Inc.
> >
> >
> >
> > --
> > thanks
> > Rishi
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
[EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



--
thanks
Rishi

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to