Hi,
I am having problems with generating a c# proxy class from a IBM
websphere WSDL file, when running the wsdl.exe to create the c# proxy
file command i recieve an error:
Warning: one or more operations were skipped.
Warnings were encountered. Review generated source comments for more
details.
Writing file 'c:\proxyclass. cs'.
After reviewing the created proxyclass.cs i find that the following
error message:
// CODEGEN: The operation binding 'CustomerUpdate ' from namespace
'http://www.mywebsite.c om/webservices/wsdl/Service.wsdl' was ignored.
Missing soap:body input binding.
After many hours of searching through newsgroups i have reached the
conclusion that the following part of the WSDL file cannot be
interpered correctly:
<wsdl:input name="CustomerU pdateInput">
<mime:multipart Related>
<mime:part>
<soap:body use="literal" part="customeru pdate"/>
</mime:part>
<mime:part>
<mime:content part="customeru pdatedata"
type="applicati on/x-gzip"/>
</mime:part>
</mime:multipartR elated>
</wsdl:input>
This is apperently because .NET does not have support for MIME, but
only for DIME, as i have read in various newgroups, could be wrong (i
sure hope so :-))
Does anyone know if my assumption is correct or not and have anyone had
this problem before and solved it?
Have anyone of you had this problem before and know the solution, or
could point me in the right direction or something else related to this
issue i would be very grateful.
I include the WSDL file (i have changed service specific addresses to
protect the customer im working with.) And my generated proxy class.
Copy of the WSDL file:
---------------------------------
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitio ns name="Myname"
xmlns:xsd="http ://www.w3.org/2001/XMLSchema"
xmlns:soap="htt p://schemas.xmlsoap .org/wsdl/soap/"
xmlns:wsdl="htt p://schemas.xmlsoap .org/wsdl/"
xmlns:mime="htt p://schemas.xmlsoap .org/wsdl/mime/"
xmlns:soap-enc="http://schemas.xmlsoap .org/soap/encoding/"
xmlns:tns="http ://www.customerweb site.com/webservices/wsdl/webService.wsdl "
targetNamespace ="http://www.customerweb site.com/webservices/wsdl/webService.wsdl ">
<wsdl:types>
<xsd:schema xmlns:xsd="http ://www.w3.org/1999/XMLSchema">
<xsd:complexTyp e name="customeru pdateType">
<xsd:all>
<xsd:element name="username" type="xsd:strin g" />
<xsd:element name="password" type="xsd:strin g" />
</xsd:all>
</xsd:complexType >
<xsd:complexTyp e name="customeru pdateResponseTy pe">
<xsd:all>
<xsd:element name="statusmes sage" type="xsd:strin g" />
<xsd:element name="statusdat e" type="xsd:date" />
</xsd:all>
</xsd:complexType >
</xsd:schema>
</wsdl:types>
<wsdl:message name="CustomerU pdateIn">
<wsdl:part type="tns:custo merupdateType" name="customeru pdate"/>
<wsdl:part name="customeru pdatedata" type="xsd:base6 4Binary"/>
</wsdl:message>
<wsdl:message name="CustomerU pdateOut">
<wsdl:part type="tns:custo merupdateRespon seType"
name="customeru pdateresponse"/>
</wsdl:message>
<wsdl:message name="CustomerU pdateException" >
<wsdl:part type="xsd:strin g" name="errormess age"/>
</wsdl:message>
<wsdl:portTyp e name="CustomerU pdatePortType">
<wsdl:operati on name="CustomerU pdate">
<wsdl:input name="CustomerU pdateInput"
message="tns:Cu stomerUpdateIn"/>
<wsdl:output name="CustomerU pdateOutput"
message="tns:Cu stomerUpdateOut "/>
<wsdl:fault name="CustomerU pdateFault"
message="tns:Cu stomerUpdateExc eption"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CustomerU pdateBinding"
type="tns:Custo merUpdatePortTy pe">
<soap:binding style="rpc"
transport="http ://schemas.xmlsoap .org/soap/http"/>
<wsdl:operati on name="CustomerU pdate">
<soap:operati on
soapAction="htt p://www.customerweb site.com/webservices/intern/update"/>
<wsdl:input name="CustomerU pdateInput">
<mime:multipart Related>
<mime:part>
<soap:body use="literal" part="customeru pdate"/>
</mime:part>
<mime:part>
<mime:content part="customeru pdatedata"
type="applicati on/x-gzip"/>
</mime:part>
</mime:multipartR elated>
</wsdl:input>
<wsdl:output name="CustomerU pdateOutput">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="CustomerU pdateFault">
<soap:fault name="CustomerU pdateFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CustomerU pdateService">
<wsdl:port name="CustomerU pdatePort"
binding="tns:Cu stomerUpdateBin ding">
<soap:address
location="http://www.customerweb site.com/webservices/customerupdate"/>
</wsdl:port>
</wsdl:service>
</wsdl:definition s>
Copy of the C# generated proxy class:
-------------------------------------
//
// This source code was auto-generated by wsdl, Version=1.1.432 2.2032.
//
using System.Diagnost ics;
using System.Xml.Seri alization;
using System;
using System.Web.Serv ices.Protocols;
using System.Componen tModel;
using System.Web.Serv ices;
/// <remarks/>
// CODEGEN: The operation binding 'CustomerUpdate ' from namespace
'http://www.customerweb site.com/webservices/wsdl/webService.wsdl ' was
ignored. Missing soap:body input binding.
[System.Diagnost ics.DebuggerSte pThroughAttribu te()]
[System.Componen tModel.Designer CategoryAttribu te("code")]
[System.Web.Serv ices.WebService BindingAttribut e(Name="Custome rUpdateBinding" ,
Namespace="http ://www.customerweb site.com/webservices/wsdl/WebService.wsdl ")]
public class CustomerUpdateS ervice :
System.Web.Serv ices.Protocols. SoapHttpClientP rotocol {
/// <remarks/>
public CustomerUpdateS ervice() {
this.Url =
"http://www.customerweb site.com/webservices/customerupdate" ;
}
}
Sincerely,
Hans Sixhöj
Systems Developer
Microsoft Certified Solution Developer
Visma Consulting AB
ha*********@vis ma.se