Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-4769

Enum definition in wsdl automatically generated is not defined.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.5.1
    • None
    • wsdl
    • None
    • Java version 1.6.0
      Apache Tomcat 6.0.18 Server
      Axis2 1.5.1

    Description

      Hi,

      If this a repost or it is already resolved problem, I am sorry and please direct me to old post or the solution.Thanks

      I have created a Simple Service as shown below.

      package com.tt.ss;

      public class SimpleService
      {
      public float CalculateInsurance(VehicleType vehicleType,String regId)
      {
      switch(vehicleType)

      { case TWO_WHEELER: return (float) 100.00; case FOUR_WHEELER: return (float) 200.00; default: return (float) 0.0; }

      }
      }

      Enum class definition is shown below

      package com.tt.ss;

      public enum VehicleType

      { TWO_WHEELER, FOUR_WHEELER; }

      This is the wsdl which is generated when deployed on Tomcat server

      <?xml version="1.0" encoding="UTF-8"?>
      <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ax233="http://ss.tt.com/xsd" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://ss.tt.com" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://ss.tt.com">
      <wsdl:documentation>SimpleService</wsdl:documentation>
      <wsdl:types>
      <xs:schema xmlns:ax234="http://ss.tt.com/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://ss.tt.com">
      <xs:import namespace="http://ss.tt.com/xsd"/>
      <xs:element name="CalculateInsurance">
      <xs:complexType>
      <xs:sequence>
      <xs:element minOccurs="0" name="vehicleType" nillable="true" type="ax234:VehicleType"/>
      <xs:element minOccurs="0" name="regId" nillable="true" type="xs:string"/>
      </xs:sequence>
      </xs:complexType>
      </xs:element>
      <xs:element name="CalculateInsuranceResponse">
      <xs:complexType>
      <xs:sequence>
      <xs:element minOccurs="0" name="return" type="xs:float"/>
      </xs:sequence>
      </xs:complexType>
      </xs:element>
      </xs:schema>
      <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://ss.tt.com/xsd">
      <xs:complexType name="VehicleType">
      <xs:complexContent>
      <xs:extension base="xs:Enum">
      <xs:sequence/>
      </xs:extension>
      </xs:complexContent>
      </xs:complexType>
      </xs:schema>
      </wsdl:types>
      <wsdl:message name="CalculateInsuranceRequest">
      <wsdl:part name="parameters" element="ns:CalculateInsurance"/>
      </wsdl:message>
      <wsdl:message name="CalculateInsuranceResponse">
      <wsdl:part name="parameters" element="ns:CalculateInsuranceResponse"/>
      </wsdl:message>
      <wsdl:portType name="SimpleServicePortType">
      <wsdl:operation name="CalculateInsurance">
      <wsdl:input message="ns:CalculateInsuranceRequest" wsaw:Action="urn:CalculateInsurance"/>
      <wsdl:output message="ns:CalculateInsuranceResponse" wsaw:Action="urn:CalculateInsuranceResponse"/>
      </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="SimpleServiceSoap11Binding" type="ns:SimpleServicePortType">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
      <wsdl:operation name="CalculateInsurance">
      <soap:operation soapAction="urn:CalculateInsurance" style="document"/>
      <wsdl:input>
      <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal"/>
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:binding name="SimpleServiceSoap12Binding" type="ns:SimpleServicePortType">
      <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
      <wsdl:operation name="CalculateInsurance">
      <soap12:operation soapAction="urn:CalculateInsurance" style="document"/>
      <wsdl:input>
      <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
      <soap12:body use="literal"/>
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:binding name="SimpleServiceHttpBinding" type="ns:SimpleServicePortType">
      <http:binding verb="POST"/>
      <wsdl:operation name="CalculateInsurance">
      <http:operation location="SimpleService/CalculateInsurance"/>
      <wsdl:input>
      <mime:content type="text/xml" part="CalculateInsurance"/>
      </wsdl:input>
      <wsdl:output>
      <mime:content type="text/xml" part="CalculateInsurance"/>
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="SimpleService">
      <wsdl:port name="SimpleServiceHttpSoap11Endpoint" binding="ns:SimpleServiceSoap11Binding">
      <soap:address location="http://199.63.247.120:8080/axis2/services/SimpleService.SimpleServiceHttpSoap11Endpoint/"/>
      </wsdl:port>
      <wsdl:port name="SimpleServiceHttpSoap12Endpoint" binding="ns:SimpleServiceSoap12Binding">
      <soap12:address location="http://199.63.247.120:8080/axis2/services/SimpleService.SimpleServiceHttpSoap12Endpoint/"/>
      </wsdl:port>
      <wsdl:port name="SimpleServiceHttpEndpoint" binding="ns:SimpleServiceHttpBinding">
      <http:address location="http://199.63.247.120:8080/axis2/services/SimpleService.SimpleServiceHttpEndpoint/"/>
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>

      This is wsdl generated when the deployed on axis2-src/repository/services folder

      <?xml version="1.0" encoding="UTF-8"?>
      <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://ss.tt.com/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns0="http://ss.tt.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://ss.tt.com">
      <wsdl:documentation>SimpleService</wsdl:documentation>
      <wsdl:types>
      <xs:schema xmlns:ns="http://ss.tt.com" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://ss.tt.com">
      <xs:element name="CalculateInsurance">
      <xs:complexType>
      <xs:sequence>
      <xs:element minOccurs="0" name="vehicleType" nillable="true" type="ns1:VehicleType"/>
      <xs:element minOccurs="0" name="regId" nillable="true" type="xs:string"/>
      </xs:sequence>
      </xs:complexType>
      </xs:element>
      <xs:element name="CalculateInsuranceResponse">
      <xs:complexType>
      <xs:sequence>
      <xs:element minOccurs="0" name="return" type="xs:float"/>
      </xs:sequence>
      </xs:complexType>
      </xs:element>
      </xs:schema>
      <xs:schema xmlns:ax27="http://ss.tt.com/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://ss.tt.com/xsd">
      <xs:complexType name="VehicleType">
      <xs:complexContent>
      <xs:extension base="xs:Enum">
      <xs:sequence>
      <xs:element minOccurs="0" name="FOUR_WHEELER" nillable="true" type="ax27:VehicleType"/>
      <xs:element minOccurs="0" name="TWO_WHEELER" nillable="true" type="ax27:VehicleType"/>
      </xs:sequence>
      </xs:extension>
      </xs:complexContent>
      </xs:complexType>
      </xs:schema>
      </wsdl:types>
      <wsdl:message name="CalculateInsuranceRequest">
      <wsdl:part name="parameters" element="ns0:CalculateInsurance"/>
      </wsdl:message>
      <wsdl:message name="CalculateInsuranceResponse">
      <wsdl:part name="parameters" element="ns0:CalculateInsuranceResponse"/>
      </wsdl:message>
      <wsdl:portType name="SimpleServicePortType">
      <wsdl:operation name="CalculateInsurance">
      <wsdl:input message="ns0:CalculateInsuranceRequest" wsaw:Action="urn:CalculateInsurance"/>
      <wsdl:output message="ns0:CalculateInsuranceResponse" wsaw:Action="urn:CalculateInsuranceResponse"/>
      </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="SimpleServiceSOAP11Binding" type="ns0:SimpleServicePortType">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
      <wsdl:operation name="CalculateInsurance">
      <soap:operation soapAction="urn:CalculateInsurance" style="document"/>
      <wsdl:input>
      <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal"/>
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:binding name="SimpleServiceSOAP12Binding" type="ns0:SimpleServicePortType">
      <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
      <wsdl:operation name="CalculateInsurance">
      <soap12:operation soapAction="urn:CalculateInsurance" style="document"/>
      <wsdl:input>
      <soap12:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
      <soap12:body use="literal"/>
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:binding name="SimpleServiceHttpBinding" type="ns0:SimpleServicePortType">
      <http:binding verb="POST"/>
      <wsdl:operation name="CalculateInsurance">
      <http:operation location="SimpleService/CalculateInsurance"/>
      <wsdl:input>
      <mime:content type="text/xml" part="CalculateInsurance"/>
      </wsdl:input>
      <wsdl:output>
      <mime:content type="text/xml" part="CalculateInsurance"/>
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="SimpleService">
      <wsdl:port name="SimpleServiceSOAP11port_http" binding="ns0:SimpleServiceSOAP11Binding">
      <soap:address location="http://localhost:8080/axis2/services/SimpleService"/>
      </wsdl:port>
      <wsdl:port name="SimpleServiceSOAP12port_http" binding="ns0:SimpleServiceSOAP12Binding">
      <soap12:address location="http://localhost:8080/axis2/services/SimpleService"/>
      </wsdl:port>
      <wsdl:port name="SimpleServiceHttpport" binding="ns0:SimpleServiceHttpBinding">
      <http:address location="http://localhost:8080/axis2/services/SimpleService"/>
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>

      If you can see there a difference in definition of Enum.
      So I query is this do I need to add any new libraries to Axis2 folder in Tomcat installation ? Or there is a bug in the libraries distributed...

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              student_86 kk
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: