.NET can consume an unwrapped doc/literal service, but it's less convenient for the .NET developer. As a general rule, I recommend that you always follow the wrapped convention.
I'm having trouble understanding where the BP 1.1 validator is failing. Could you show us the WSDL (or a similar representation) that's failing? When using doc/literal, your messages may contain at most one body part (which becomes a child of the <soap:body> in the SOAP message). A "part accessor element" refers to the child of the <soap:body>. (In RPC style, the "part accessor elements" refer to children of the auto-generated wrapper element that has the same local name as the operation.) I believe the error is referring to the SOAP message, not to the WSDL. Anne On 4/1/07, Rishi krish <[EMAIL PROTECTED]> wrote:
Hi Anne Thanks again for your clarification on .Net requirements. You said doc-Lit wrapped is the default format generated by .Net. Do you imply that if my axis service is not conforming to doc-lit wrapped format .Net cannot communicate to it? OR .Net can be configured to communicate with a service which is just doc-lit and not wrapped? I had downloaded the c# based BP 1.1 validator from WS-I site [I am hoping that this is representative of .Net platform] and have been trying tests with it. It fails me on BP1212 which implements R2212 which requires: An ENVELOPE MUST contain exactly one part accessor element for each of the wsdl:part elements bound to the envelope's corresponding soapbind:body element. My wsdl soapbind:body does not have any part attribute defined - and thats perfectly valid [as per R2210] as I have only one part defined in the wsdl:message definition. The java BP 1.1 tool says "notApplicable". Is this a bug with the c# BP 1.1 tool or this is a .Net requirement that the wsdl soapbind:body element has to have the part attribute defined. thanks Rishi On 4/1/07, Anne Thomas Manes <[EMAIL PROTECTED]> wrote: > 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] > > -- thanks Rishi
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
