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

Ask a Question related to ASP.NET Web Services, Design and Development.

  1. #1

    Default 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

  2. Similar Questions and Discussions

    1. 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....
    2. 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...
    3. [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...
    4. 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...
    5. 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...
  3. #2

    Default 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

  4. #3

    Default 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:
    > 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.
    ffhansix@hotmail.com Guest

  5. #4

    Default 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

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139