Please provide us the WSDL in question.
On 6/2/05, Dave <[EMAIL PROTECTED]> wrote: > Thanks, Jan. > > Unfortunately we don't have the option of changing service styles at > this point in the project. > > We have learned that there are lots of interop issues with array > types, but I'm trying to pin down this particular difference between > what should be identically defined return types to see if it might be > causing a problem here. > > On 6/2/05, Jan Delannoy <[EMAIL PROTECTED]> wrote: > > I don't think your problem is related to those namespace, it's > > probably more to do with the way arrays are encoded (using > > soapenc:Array). You might want to try a document/literal approach > > instead (style=DOCUMENT or WRAPPED in Java2Wsdl). > > > > Regards, > > Jan > > > > > > On 6/2/05, Dave <[EMAIL PROTECTED]> wrote: > > > Hi - > > > > > > We have some methods which return arrays of complex types. Some of > > > them work fine, but others (although working fine for our test clients > > > using axis stubs) seem to have problems for people using .net to > > > integrate with our web services. > > > > > > I noticed that the methods causing problems are defined a bit > > > differently in the wsdl. For example, if we have a java class MyWidget > > > and a method in the service interface like: > > > > > > public MyWidget[] getMyWidgets() > > > > > > then the response type is defined as: > > > > > > <wsdl:message name="getMyWidgetsResponse"> > > > <wsdl:part name="getMyWidgetsReturn" type="impl:ArrayOfMyWidgets"/> > > > </wsdl:message> > > > > > > The array type gets defined like this: > > > > > > <complexType name="ArrayOfMyWidgets"> > > > <complexContent> > > > <restriction base="soapenc:Array"> > > > <attribute ref="soapenc:arrayType" > > > wsdl:arrayType="impl:MyWidget[]"/> > > > </restriction> > > > </complexContent> > > > </complexType> > > > > > > Other similar methods which don't have the problem are a bit different > > > in the .wsdl, in that the return part has a type of > > > intf:ArrayOfMyWidgets instead of impl:ArrayOfMyWidgets. > > > > > > <wsdl:message name="getMyGoodWidgetsResponse"> > > > <wsdl:part name="getMyGoodWidgetsReturn" type="int:ArrayOfMyGoodWidgets"/> > > > </wsdl:message> > > > > > > As far as I can tell the working and non-working methods are basically > > > identical -- both have return types that are arrays of objects defined > > > by us, and both are converted to web services using the same java2wsdl > > > arguments. > > > > > > The error message for the people trying to use .net to integrate with > > > us looks like this: "Custom tool error: Unable to import > > > WebService/Schema. Unable to import > > > binding 'MyServiceSoapBinding' from namespace > > > 'urn:my_namespace'. Unable to import operation > > > 'getMyWidgets'. The datatype 'Array' is missing." > > > > > > I have no proof that the impl vs. intf difference is causing the > > > problem, but it seems like the most likely candidate. Can anyone > > > enlighten me about when java2wsdl uses intf: vs. impl: in defining a > > > response type? > > > > > > Thanks! > > > > > >
