471,305 Members | 1,448 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,305 software developers and data experts.

Generate c# proxy class from IBM websphere (AXIS) webservice WSDL.

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.com/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="CustomerUpdateInput">
<mime:multipartRelated>
<mime:part>
<soap:body use="literal" part="customerupdate"/>
</mime:part>
<mime:part>
<mime:content part="customerupdatedata"
type="application/x-gzip"/>
</mime:part>
</mime:multipartRelated>
</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:definitions name="Myname"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:tns="http://www.customerwebsite.com/webservices/wsdl/webService.wsdl"

targetNamespace="http://www.customerwebsite.com/webservices/wsdl/webService.wsdl">

<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<xsd:complexType name="customerupdateType">
<xsd:all>
<xsd:element name="username" type="xsd:string" />
<xsd:element name="password" type="xsd:string" />
</xsd:all>
</xsd:complexType>
<xsd:complexType name="customerupdateResponseType">
<xsd:all>
<xsd:element name="statusmessage" type="xsd:string" />
<xsd:element name="statusdate" type="xsd:date" />
</xsd:all>
</xsd:complexType>
</xsd:schema>
</wsdl:types>

<wsdl:message name="CustomerUpdateIn">
<wsdl:part type="tns:customerupdateType" name="customerupdate"/>
<wsdl:part name="customerupdatedata" type="xsd:base64Binary"/>
</wsdl:message>

<wsdl:message name="CustomerUpdateOut">
<wsdl:part type="tns:customerupdateResponseType"
name="customerupdateresponse"/>
</wsdl:message>

<wsdl:message name="CustomerUpdateException">
<wsdl:part type="xsd:string" name="errormessage"/>
</wsdl:message>

<wsdl:portType name="CustomerUpdatePortType">
<wsdl:operation name="CustomerUpdate">
<wsdl:input name="CustomerUpdateInput"
message="tns:CustomerUpdateIn"/>
<wsdl:output name="CustomerUpdateOutput"
message="tns:CustomerUpdateOut"/>
<wsdl:fault name="CustomerUpdateFault"
message="tns:CustomerUpdateException"/>
</wsdl:operation>
</wsdl:portType>

<wsdl:binding name="CustomerUpdateBinding"
type="tns:CustomerUpdatePortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="CustomerUpdate">
<soap:operation
soapAction="http://www.customerwebsite.com/webservices/intern/update"/>
<wsdl:input name="CustomerUpdateInput">
<mime:multipartRelated>
<mime:part>
<soap:body use="literal" part="customerupdate"/>
</mime:part>
<mime:part>
<mime:content part="customerupdatedata"
type="application/x-gzip"/>
</mime:part>
</mime:multipartRelated>
</wsdl:input>
<wsdl:output name="CustomerUpdateOutput">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="CustomerUpdateFault">
<soap:fault name="CustomerUpdateFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>

<wsdl:service name="CustomerUpdateService">
<wsdl:port name="CustomerUpdatePort"
binding="tns:CustomerUpdateBinding">
<soap:address
location="http://www.customerwebsite.com/webservices/customerupdate"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Copy of the C# generated proxy class:
-------------------------------------
//
// This source code was auto-generated by wsdl, Version=1.1.4322.2032.
//
using System.Diagnostics;
using System.Xml.Serialization;
using System;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.Services;
/// <remarks/>
// CODEGEN: The operation binding 'CustomerUpdate' from namespace
'http://www.customerwebsite.com/webservices/wsdl/webService.wsdl' was
ignored. Missing soap:body input binding.
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("c ode")]
[System.Web.Services.WebServiceBindingAttribute(Nam e="CustomerUpdateBinding",
Namespace="http://www.customerwebsite.com/webservices/wsdl/WebService.wsdl")]
public class CustomerUpdateService :
System.Web.Services.Protocols.SoapHttpClientProtoc ol {

/// <remarks/>
public CustomerUpdateService() {
this.Url =
"http://www.customerwebsite.com/webservices/customerupdate";
}
}

Sincerely,
Hans Sixhöj
Systems Developer
Microsoft Certified Solution Developer
Visma Consulting AB
ha*********@visma.se

Nov 12 '05 #1
1 9545
It's true, as you read, .NET does not do SwA or MIME.

-Dino
<ff******@hotmail.com> wrote in message
news:11*********************@l41g2000cwc.googlegro ups.com...
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.com/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="CustomerUpdateInput">
<mime:multipartRelated>
<mime:part>
<soap:body use="literal" part="customerupdate"/>
</mime:part>
<mime:part>
<mime:content part="customerupdatedata"
type="application/x-gzip"/>
</mime:part>
</mime:multipartRelated>
</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:definitions name="Myname"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:tns="http://www.customerwebsite.com/webservices/wsdl/webService.wsdl"

targetNamespace="http://www.customerwebsite.com/webservices/wsdl/webService.wsdl">

<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<xsd:complexType name="customerupdateType">
<xsd:all>
<xsd:element name="username" type="xsd:string" />
<xsd:element name="password" type="xsd:string" />
</xsd:all>
</xsd:complexType>
<xsd:complexType name="customerupdateResponseType">
<xsd:all>
<xsd:element name="statusmessage" type="xsd:string" />
<xsd:element name="statusdate" type="xsd:date" />
</xsd:all>
</xsd:complexType>
</xsd:schema>
</wsdl:types>

<wsdl:message name="CustomerUpdateIn">
<wsdl:part type="tns:customerupdateType" name="customerupdate"/>
<wsdl:part name="customerupdatedata" type="xsd:base64Binary"/>
</wsdl:message>

<wsdl:message name="CustomerUpdateOut">
<wsdl:part type="tns:customerupdateResponseType"
name="customerupdateresponse"/>
</wsdl:message>

<wsdl:message name="CustomerUpdateException">
<wsdl:part type="xsd:string" name="errormessage"/>
</wsdl:message>

<wsdl:portType name="CustomerUpdatePortType">
<wsdl:operation name="CustomerUpdate">
<wsdl:input name="CustomerUpdateInput"
message="tns:CustomerUpdateIn"/>
<wsdl:output name="CustomerUpdateOutput"
message="tns:CustomerUpdateOut"/>
<wsdl:fault name="CustomerUpdateFault"
message="tns:CustomerUpdateException"/>
</wsdl:operation>
</wsdl:portType>

<wsdl:binding name="CustomerUpdateBinding"
type="tns:CustomerUpdatePortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="CustomerUpdate">
<soap:operation
soapAction="http://www.customerwebsite.com/webservices/intern/update"/>
<wsdl:input name="CustomerUpdateInput">
<mime:multipartRelated>
<mime:part>
<soap:body use="literal" part="customerupdate"/>
</mime:part>
<mime:part>
<mime:content part="customerupdatedata"
type="application/x-gzip"/>
</mime:part>
</mime:multipartRelated>
</wsdl:input>
<wsdl:output name="CustomerUpdateOutput">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="CustomerUpdateFault">
<soap:fault name="CustomerUpdateFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>

<wsdl:service name="CustomerUpdateService">
<wsdl:port name="CustomerUpdatePort"
binding="tns:CustomerUpdateBinding">
<soap:address
location="http://www.customerwebsite.com/webservices/customerupdate"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Copy of the C# generated proxy class:
-------------------------------------
//
// This source code was auto-generated by wsdl, Version=1.1.4322.2032.
//
using System.Diagnostics;
using System.Xml.Serialization;
using System;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.Services;
/// <remarks/>
// CODEGEN: The operation binding 'CustomerUpdate' from namespace
'http://www.customerwebsite.com/webservices/wsdl/webService.wsdl' was
ignored. Missing soap:body input binding.
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("c ode")]
[System.Web.Services.WebServiceBindingAttribute(Nam e="CustomerUpdateBinding",
Namespace="http://www.customerwebsite.com/webservices/wsdl/WebService.wsdl")]
public class CustomerUpdateService :
System.Web.Services.Protocols.SoapHttpClientProtoc ol {

/// <remarks/>
public CustomerUpdateService() {
this.Url =
"http://www.customerwebsite.com/webservices/customerupdate";
}
}

Sincerely,
Hans Sixhöj
Systems Developer
Microsoft Certified Solution Developer
Visma Consulting AB
ha*********@visma.se
Nov 12 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Ohad Young | last post: by
4 posts views Thread by newtonwong | last post: by
reply views Thread by rosydwin | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.