Ask a Question related to ASP.NET Web Services, Design and Development.
-
ffhansix@hotmail.com #1
Problem generating 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/webse*rvices/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/XMLSche*ma"
xmlns:soap="http://schemas.xmlsoap.org/wsd*l/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsd*l/"
xmlns:mime="http://schemas.xmlsoap.org/wsd*l/mime/"
xmlns:soap-enc="http://schemas.xmlsoap.org/soa*p/encoding/"
xmlns:tns="http://www.customerwebsite.com/webservices/wsdl/webService.w*sdl"
targetNamespace="http://www.customerwebsite.com/webservices/wsdl/webService.w*sdl">
<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="customerupdateResponseTy*pe">
<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:customerupdateRespon*seType"
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:CustomerUpdateExc*eption"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CustomerUpdateBinding"
type="tns:CustomerUpdatePortTy*pe">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soa*p/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:CustomerUpdateBin*ding">
<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.w*sdl'
was
ignored. Missing soap:body input binding.
[System.Diagnostics.DebuggerSt*epThroughAttribute()]
[System.ComponentModel.Designe*rCategoryAttribute(" code")]
[System.Web.Services.WebServic*eBindingAttribute(Na me="Custom*erUpdateBinding",
Namespace="http://www.customerwebsite.com*/webservices/wsdl/WebService.w*sdl")]
public class CustomerUpdateService :
System.Web.Services.Protocols.*SoapHttpClientProto col {
/// <remarks/>
public CustomerUpdateService() {
this.Url =
"http://www.customerwebsite.com*/webservices/customerupdate";
}
}
Sincerely,
Hans Sixhöj
Systems Developer
Microsoft Certified Solution Developer
Visma Consulting AB
hans.six...@visma.se
ffhansix@hotmail.com Guest
-
webservice proxy generating fw2.0 beta2 trouble
Alex Ilyin via .NET 247 <anonymous@dotnet247.com> wrote in news:uFAMNnUWFHA.3620@TK2MSFTNGP09.phx.gbl: DataTables cannot serialize themselves.... -
creating proxy class from WSDL file
(Type your message here) HI, i have problem creating proxy class from VS.Net environment by referencing a WSDL file. I don't have .asmx file. I... -
[Q]how to make webservice defined type to have [serializable] attribute when generating the wsdl file?
I define a type in web services code that is used by webmethods as parameters. This type with its public data members is included in the generated... -
Proxy class for an Axis Web Service
Hello All I am trying to develop the proxy class for an Axis Web Service which is based on Document/Literal binding. I have hand coded my WSDL and... -
WSDL.exe doesn't seem to create the proxy class
Hello, I'm trying to compile a proxy class using the WSDL.exe app found in the bin folder. I've set up a batch file to run the command (saves... -
Keenan Newton #2
Re: Problem generating c# proxy class from IBM websphere (AXIS) webservice WSDL.
Your assumption is correct .Net does not support MIME. Below is a link
on today's supported types.
[url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconaspnetimplementationofwebservices.asp[/url]
So the question is what can you do well. First of all you can't use
the web service as is, at least not this method that supports the MIME.
You can have the web service provider change the file to a byte array,
or base64 string. Another option is WSE. (Web Service Enhancements).
This will allow you to use DIME, or with 2.0 of WSE you can use
WS-Attachments. Other then that not much else I can think of that you
can do. You will need to work out a resolution with your web service
provider. My suggestion is WS-Attachments. It's relatively easy, and
performs well.
Keenan Newton Guest
-
ffhansix@hotmail.com #3
Re: Problem generating c# proxy class from IBM websphere (AXIS) webservice WSDL.
Thank you for answering my post,
So .NET does not support MIME at all, only DIME, as i suspected. My
service provider should then provide a web service with a method that
uses DIME or change the method to accept a byte array or base 64
string.
Sincerely,
/Hans Sixhöj
Keenan Newton wrote:link> Your assumption is correct .Net does not support MIME. Below is a[url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconaspnetimplementationofwebservices.asp[/url]> on today's supported types.
>
>MIME.>
> So the question is what can you do well. First of all you can't use
> the web service as is, at least not this method that supports thearray,> You can have the web service provider change the file to a byteyou> or base64 string. Another option is WSE. (Web Service Enhancements).
> This will allow you to use DIME, or with 2.0 of WSE you can use
> WS-Attachments. Other then that not much else I can think of thatand> can do. You will need to work out a resolution with your web service
> provider. My suggestion is WS-Attachments. It's relatively easy,> performs well.ffhansix@hotmail.com Guest
-
Mruthunjaya #4
Re: Problem generating c# proxy class from IBM websphere (AXIS) webservice WSDL.
Hi,
Even the web service we are consuming is also having the same problem with MIME. please can anyone help me how is this actually been resolved.
Question is how can we consume the proider service and send MIME output as a request to the Provider service.Mruthunjaya Guest



Reply With Quote

