[ http://issues.apache.org/jira/browse/AXIS-1834?page=history ]
Davanum Srinivas resolved AXIS-1834:
------------------------------------
Resolution: Fixed
You can add the new "dotNetSoapEncFix" flag in your server-confi.wsdd's
globalConfiguration section. see documentation and/or mailing list archives for
more info.
-- dims
> ?wsdl and Enums
> ---------------
>
> Key: AXIS-1834
> URL: http://issues.apache.org/jira/browse/AXIS-1834
> Project: Axis
> Type: Bug
> Components: WSDL processing
> Versions: 1.2RC2
> Environment: Axis service deployed to websphere server
> WebSphere Platform 5.0 [BASE 5.0.0 s0245.03]
> Host Operating System is Windows 2000, version 5.0
> Java version = J2RE 1.3.1 IBM Windows 32 build cn131-20021107 (JIT enabled:
> jitc)
> Microsoft Development Environment 2003
> Microsoft .NET Framework 1.1
> Microsoft Visual C# .NET 69586-335-0000007-18998
> Reporter: Aedemar Cooke
>
> The .NET web reference created from the WSDL (1) produced by appending ?wsdl
> to my Axis 1.2RC2 service name is incorrect and different to the web
> reference created from the WSDL (2) generated by
> org.apache.axis.wsdl.Java2WSDL.
> The only difference between the WSDL is how custom SimpleTypes (e.g.,
> FinancialStatus in my WSDL) are represented:
> (1)
> They have a base type of soapenc:string where
> xmlns:soapenc=http://schemas.xmlsoap.org/soap/encoding/
> (2)
> They have a base type of xsd:string where
> xmlns:xsd=http://www.w3.org/2001/XMLSchema
> The generated .NET webreference from (1) defines the SimpleType as a string
> The generated .NET webreference from (2) defines the SimpleType as an Enum
> The steps I have followed from pre Axis1.1 to deploy my service are
> 1. Create interface and implementation classes
> 2. Use org.apache.axis.wsdl.Java2WSDL to generate the WSDL
> 3. Use org.apache.axis.wsdl.WSDL2Java to generate the deploy.wsdd
> 4. deploy using org.apache.axis.client.AdminService
> -http://localhost:9080/InquiryWeb/services/AdminService deploy.wsdd
> 5. The .NET client code is generated by adding a web reference to
> http://localhost:9080/InquiryWeb/services/Inquiry?wsdl
> I did not experience this problem with Axis 1.1.
> The wsdl and associated c# files are pasted in below:
> (1) WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="urn:Inquiry"
> xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:Inquiry"
> xmlns:intf="urn:Inquiry"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:tns1="http://util.gpb.rbc.com"
> xmlns:tns2="http://customer.util.gpb.rbc.com" xmlns:tns3="http://lang.java"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <!--WSDL created by Apache Axis version: 1.2RC2
> Built on Nov 16, 2004 (12:19:44 EST)-->
> <wsdl:types>
> <schema targetNamespace="http://util.gpb.rbc.com"
> xmlns="http://www.w3.org/2001/XMLSchema">
> <import namespace="http://lang.java"/>
> <import namespace="http://customer.util.gpb.rbc.com"/>
> <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
> <complexType name="BankIdentifier">
> <sequence>
> <element name="bank" type="xsd:int"/>
> <element name="transit" type="xsd:int"/>
> <element name="key" nillable="true" type="soapenc:string"/>
> <element name="number" type="xsd:int"/>
> </sequence>
> </complexType>
> <simpleType name="ErrorSeverity">
> <restriction base="soapenc:string">
> <enumeration value="Low"/>
> <enumeration value="Medium"/>
> <enumeration value="High"/>
> <enumeration value="BusinessCritical"/>
> <enumeration value="MissionCritical"/>
> </restriction>
> </simpleType>
> <complexType name="GPBException">
> <sequence>
> <element name="exception" nillable="true" type="xsd:anyType"/>
> <element name="message" nillable="true" type="soapenc:string"/>
> <element name="errorSeverity" nillable="true" type="tns1:ErrorSeverity"/>
> </sequence>
> </complexType>
> </schema>
> <schema targetNamespace="http://customer.util.gpb.rbc.com"
> xmlns="http://www.w3.org/2001/XMLSchema">
> <import namespace="http://util.gpb.rbc.com"/>
> <import namespace="http://lang.java"/>
> <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
> <simpleType name="FinancialStatus">
> <restriction base="soapenc:string">
> <enumeration value="Loss"/>
> <enumeration value="Doubtful"/>
> <enumeration value="Substandard"/>
> <enumeration value="SpecialMention"/>
> <enumeration value="Watchlist"/>
> <enumeration value="Bankrupt"/>
> <enumeration value="Chapter11"/>
> <enumeration value="Restraint"/>
> <enumeration value="Regular"/>
> </restriction>
> </simpleType>
> <complexType name="CustomerSummaryDTO">
> <sequence>
> <element name="shortName" nillable="true" type="soapenc:string"/>
> <element name="currency" nillable="true" type="soapenc:string"/>
> <element name="isRestrained" type="xsd:boolean"/>
> <element name="status" nillable="true" type="tns2:FinancialStatus"/>
> <element name="hasWarnings" type="xsd:boolean"/>
> <element name="id" nillable="true" type="tns1:BankIdentifier"/>
> </sequence>
> </complexType>
> </schema>
> </wsdl:types>
> <wsdl:message name="getCustomerResponse">
> <wsdl:part name="getCustomerReturn" type="tns2:CustomerSummaryDTO"/>
> </wsdl:message>
> <wsdl:message name="GPBException">
> <wsdl:part name="fault" type="tns1:GPBException"/>
> </wsdl:message>
> <wsdl:message name="getCustomerRequest">
> <wsdl:part name="aCustomerIdentifier" type="tns1:BankIdentifier"/>
> </wsdl:message>
> <wsdl:portType name="Inquiry">
> <wsdl:operation name="getCustomer" parameterOrder="aCustomerIdentifier">
> <wsdl:input message="impl:getCustomerRequest"
> name="getCustomerRequest"/>
> <wsdl:output message="impl:getCustomerResponse"
> name="getCustomerResponse"/>
> <wsdl:fault message="impl:GPBException" name="GPBException"/>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="InquirySoapBinding" type="impl:Inquiry">
> <wsdlsoap:binding style="rpc"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <wsdl:operation name="getCustomer">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="getCustomerRequest">
> <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="urn:Inquiry" use="encoded"/>
> </wsdl:input>
> <wsdl:output name="getCustomerResponse">
> <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="urn:Inquiry" use="encoded"/>
> </wsdl:output>
> <wsdl:fault name="GPBException">
> <wsdlsoap:fault
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="GPBException"
> namespace="urn:Inquiry" use="encoded"/>
> </wsdl:fault>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="InquiryService">
> <wsdl:port binding="impl:InquirySoapBinding" name="Inquiry">
> <wsdlsoap:address
> location="http://localhost:9080/InquiryWeb/services/ChannelIsland/Inquiry"/>
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
> (2) WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="urn:Inquiry"
> xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:Inquiry"
> xmlns:intf="urn:Inquiry"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:tns2="http://util.gpb.rbc.com"
> xmlns:tns3="http://customer.util.gpb.rbc.com" xmlns:tns4="http://lang.java"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <!--WSDL created by Apache Axis version: 1.2RC2
> Built on Nov 16, 2004 (12:19:44 EST)-->
> <wsdl:types>
> <schema targetNamespace="http://util.gpb.rbc.com"
> xmlns="http://www.w3.org/2001/XMLSchema">
> <import namespace="http://lang.java"/>
> <import namespace="http://customer.util.gpb.rbc.com"/>
> <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
> <complexType name="BankIdentifier">
> <sequence>
> <element name="bank" type="xsd:int"/>
> <element name="transit" type="xsd:int"/>
> <element name="key" nillable="true" type="xsd:string"/>
> <element name="number" type="xsd:int"/>
> </sequence>
> </complexType>
> <simpleType name="ErrorSeverity">
> <restriction base="xsd:string">
> <enumeration value="Low"/>
> <enumeration value="Medium"/>
> <enumeration value="High"/>
> <enumeration value="BusinessCritical"/>
> <enumeration value="MissionCritical"/>
> </restriction>
> </simpleType>
> <complexType name="GPBException">
> <sequence>
> <element name="exception" nillable="true" type="xsd:anyType"/>
> <element name="message" nillable="true" type="xsd:string"/>
> <element name="errorSeverity" nillable="true" type="tns2:ErrorSeverity"/>
> </sequence>
> </complexType>
> </schema>
> <schema targetNamespace="http://customer.util.gpb.rbc.com"
> xmlns="http://www.w3.org/2001/XMLSchema">
> <import namespace="http://util.gpb.rbc.com"/>
> <import namespace="http://lang.java"/>
> <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
> <simpleType name="FinancialStatus">
> <restriction base="xsd:string">
> <enumeration value="Loss"/>
> <enumeration value="Doubtful"/>
> <enumeration value="Substandard"/>
> <enumeration value="SpecialMention"/>
> <enumeration value="Watchlist"/>
> <enumeration value="Bankrupt"/>
> <enumeration value="Chapter11"/>
> <enumeration value="Restraint"/>
> <enumeration value="Regular"/>
> </restriction>
> </simpleType>
> <complexType name="CustomerSummaryDTO">
> <sequence>
> <element name="shortName" nillable="true" type="xsd:string"/>
> <element name="currency" nillable="true" type="xsd:string"/>
> <element name="isRestrained" type="xsd:boolean"/>
> <element name="status" nillable="true" type="tns3:FinancialStatus"/>
> <element name="hasWarnings" type="xsd:boolean"/>
> <element name="id" nillable="true" type="tns2:BankIdentifier"/>
> </sequence>
> </complexType>
> </schema>
> </wsdl:types>
> <wsdl:message name="getCustomerResponse">
> <wsdl:part name="getCustomerReturn" type="tns3:CustomerSummaryDTO"/>
> </wsdl:message>
> <wsdl:message name="GPBException">
> <wsdl:part name="fault" type="tns2:GPBException"/>
> </wsdl:message>
> <wsdl:message name="getCustomerRequest">
> <wsdl:part name="aCustomerIdentifier" type="tns2:BankIdentifier"/>
> </wsdl:message>
> <wsdl:portType name="Inquiry">
> <wsdl:operation name="getCustomer" parameterOrder="aCustomerIdentifier">
> <wsdl:input message="impl:getCustomerRequest"
> name="getCustomerRequest"/>
> <wsdl:output message="impl:getCustomerResponse"
> name="getCustomerResponse"/>
> <wsdl:fault message="impl:GPBException" name="GPBException"/>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="InquirySoapBinding" type="impl:Inquiry">
> <wsdlsoap:binding style="rpc"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <wsdl:operation name="getCustomer">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="getCustomerRequest">
> <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="urn:Inquiry" use="encoded"/>
> </wsdl:input>
> <wsdl:output name="getCustomerResponse">
> <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="urn:Inquiry" use="encoded"/>
> </wsdl:output>
> <wsdl:fault name="GPBException">
> <wsdlsoap:fault
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="GPBException"
> namespace="urn:Inquiry" use="encoded"/>
> </wsdl:fault>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="InquiryService">
> <wsdl:port binding="impl:InquirySoapBinding" name="Inquiry">
> <wsdlsoap:address
> location="http://localhost:9080/InquiryWeb/services/Inquiry"/>
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
> (1) c#
> //------------------------------------------------------------------------------
> // <autogenerated>
> // This code was generated by a tool.
> // Runtime Version: 1.1.4322.573
> //
> // Changes to this file may cause incorrect behavior and will be lost if
> // the code is regenerated.
> // </autogenerated>
> //------------------------------------------------------------------------------
> //
> // This source code was auto-generated by Microsoft.VSDesigner, Version
> 1.1.4322.573.
> //
> namespace Transactions.dynamic {
> using System.Diagnostics;
> using System.Xml.Serialization;
> using System;
> using System.Web.Services.Protocols;
> using System.ComponentModel;
> using System.Web.Services;
>
>
> /// <remarks/>
> [System.Diagnostics.DebuggerStepThroughAttribute()]
> [System.ComponentModel.DesignerCategoryAttribute("code")]
>
> [System.Web.Services.WebServiceBindingAttribute(Name="InquirySoapBinding",
> Namespace="urn:Inquiry")]
> public class InquiryService :
> System.Web.Services.Protocols.SoapHttpClientProtocol {
>
> /// <remarks/>
> public InquiryService() {
> this.Url =
> "http://localhost:9080/InquiryWeb/services/ChannelIsland/Inquiry";
> }
>
> /// <remarks/>
> [System.Web.Services.Protocols.SoapRpcMethodAttribute("",
> RequestNamespace="urn:Inquiry", ResponseNamespace="urn:Inquiry")]
> [return:
> System.Xml.Serialization.SoapElementAttribute("getCustomerReturn")]
> public CustomerSummaryDTO getCustomer(BankIdentifier
> aCustomerIdentifier) {
> object[] results = this.Invoke("getCustomer", new object[] {
> aCustomerIdentifier});
> return ((CustomerSummaryDTO)(results[0]));
> }
>
> /// <remarks/>
> public System.IAsyncResult BegingetCustomer(BankIdentifier
> aCustomerIdentifier, System.AsyncCallback callback, object asyncState) {
> return this.BeginInvoke("getCustomer", new object[] {
> aCustomerIdentifier}, callback, asyncState);
> }
>
> /// <remarks/>
> public CustomerSummaryDTO EndgetCustomer(System.IAsyncResult
> asyncResult) {
> object[] results = this.EndInvoke(asyncResult);
> return ((CustomerSummaryDTO)(results[0]));
> }
> }
>
> /// <remarks/>
> [System.Xml.Serialization.SoapTypeAttribute("BankIdentifier",
> "http://util.gpb.rbc.com")]
> public class BankIdentifier {
>
> /// <remarks/>
> public int bank;
>
> /// <remarks/>
> public int transit;
>
> /// <remarks/>
> public string key;
>
> /// <remarks/>
> public int number;
> }
>
> /// <remarks/>
> [System.Xml.Serialization.SoapTypeAttribute("CustomerSummaryDTO",
> "http://customer.util.gpb.rbc.com")]
> public class CustomerSummaryDTO {
>
> /// <remarks/>
> public string shortName;
>
> /// <remarks/>
> public string currency;
>
> /// <remarks/>
> public bool isRestrained;
>
> /// <remarks/>
> public string status;
>
> /// <remarks/>
> public bool hasWarnings;
>
> /// <remarks/>
> public BankIdentifier id;
> }
> }
> (2) c#
> //------------------------------------------------------------------------------
> // <autogenerated>
> // This code was generated by a tool.
> // Runtime Version: 1.1.4322.573
> //
> // Changes to this file may cause incorrect behavior and will be lost if
> // the code is regenerated.
> // </autogenerated>
> //------------------------------------------------------------------------------
> //
> // This source code was auto-generated by Microsoft.VSDesigner, Version
> 1.1.4322.573.
> //
> namespace Transactions.static {
> using System.Diagnostics;
> using System.Xml.Serialization;
> using System;
> using System.Web.Services.Protocols;
> using System.ComponentModel;
> using System.Web.Services;
>
>
> /// <remarks/>
> [System.Diagnostics.DebuggerStepThroughAttribute()]
> [System.ComponentModel.DesignerCategoryAttribute("code")]
>
> [System.Web.Services.WebServiceBindingAttribute(Name="InquirySoapBinding",
> Namespace="urn:Inquiry")]
> public class InquiryService :
> System.Web.Services.Protocols.SoapHttpClientProtocol {
>
> /// <remarks/>
> public InquiryService() {
> this.Url = "http://localhost:9080/InquiryWeb/services/Inquiry";
> }
>
> /// <remarks/>
> [System.Web.Services.Protocols.SoapRpcMethodAttribute("",
> RequestNamespace="urn:Inquiry", ResponseNamespace="urn:Inquiry")]
> [return:
> System.Xml.Serialization.SoapElementAttribute("getCustomerReturn")]
> public CustomerSummaryDTO getCustomer(BankIdentifier
> aCustomerIdentifier) {
> object[] results = this.Invoke("getCustomer", new object[] {
> aCustomerIdentifier});
> return ((CustomerSummaryDTO)(results[0]));
> }
>
> /// <remarks/>
> public System.IAsyncResult BegingetCustomer(BankIdentifier
> aCustomerIdentifier, System.AsyncCallback callback, object asyncState) {
> return this.BeginInvoke("getCustomer", new object[] {
> aCustomerIdentifier}, callback, asyncState);
> }
>
> /// <remarks/>
> public CustomerSummaryDTO EndgetCustomer(System.IAsyncResult
> asyncResult) {
> object[] results = this.EndInvoke(asyncResult);
> return ((CustomerSummaryDTO)(results[0]));
> }
> }
>
> /// <remarks/>
> [System.Xml.Serialization.SoapTypeAttribute("BankIdentifier",
> "http://util.gpb.rbc.com")]
> public class BankIdentifier {
>
> /// <remarks/>
> public int bank;
>
> /// <remarks/>
> public int transit;
>
> /// <remarks/>
> public string key;
>
> /// <remarks/>
> public int number;
> }
>
> /// <remarks/>
> [System.Xml.Serialization.SoapTypeAttribute("CustomerSummaryDTO",
> "http://customer.util.gpb.rbc.com")]
> public class CustomerSummaryDTO {
>
> /// <remarks/>
> public string shortName;
>
> /// <remarks/>
> public string currency;
>
> /// <remarks/>
> public bool isRestrained;
>
> /// <remarks/>
> public FinancialStatus status;
>
> /// <remarks/>
> public bool hasWarnings;
>
> /// <remarks/>
> public BankIdentifier id;
> }
>
> /// <remarks/>
> [System.Xml.Serialization.SoapTypeAttribute("FinancialStatus",
> "http://customer.util.gpb.rbc.com")]
> public enum FinancialStatus {
>
> /// <remarks/>
> Loss,
>
> /// <remarks/>
> Doubtful,
>
> /// <remarks/>
> Substandard,
>
> /// <remarks/>
> SpecialMention,
>
> /// <remarks/>
> Watchlist,
>
> /// <remarks/>
> Bankrupt,
>
> /// <remarks/>
> Chapter11,
>
> /// <remarks/>
> Restraint,
>
> /// <remarks/>
> Regular,
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira