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

WSDL generation fails in axis2 1.7.x if useoriginalwsdl=true with wsdl having external schema reference in wsdl

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.7.4
    • Fix Version/s: None
    • Component/s: deployment
    • Labels:
      None
    • Environment:
      Axis2 1.7.4 on Tomcat

      Description

      While deploying webservices .aar file, WSDL generation fails in axis2 1.7.4 if useoriginalwsdl=true if WSDL has external schema reference in wsdl

      Here's the log from Tomcat

      [INFO] Trouble processing wsdl file :java.net.MalformedURLException: no protocol: META-INF/Core.wsdl
      [INFO] Trouble processing wsdl file :java.net.MalformedURLException: no protocol: META-INF/Core.wsdl
      [INFO] Deploying Web service: Core.aar - file:/E:/Javalina/tomcat_soapnew/webapps/axis2/WEB-INF/services/Core.aar

      Here's what displayed on wsdl url

      <error>
      <description>Unable to generate WSDL 1.1 for this service</description>
      <reason>
      If you wish Axis2 to automatically generate the WSDL 1.1, then please set useOriginalwsdl as false in your services.xml
      </reason>
      </error>

      Copied WSDL and XSD here..
      Below schema is referenced in WSDL
      schemaLocation="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd"

      WSDL

      <?xml version="1.0" encoding="UTF-8"?>
      <definitions name="CORE" targetNamespace="http://www.caqh.org/SOAP/WSDL/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:CORE="http://www.caqh.org/SOAP/WSDL/" xmlns:CORE-XSD="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
        <types>
          <xsd:schema elementFormDefault="qualified" targetNamespace="http://www.caqh.org/SOAP/WSDL/" xmlns="http://schemas.xmlsoap.org/wsdl/">
            <xsd:import namespace="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd" schemaLocation="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd"/>
          </xsd:schema>
        </types>
        <message name="BatchResultsAckSubmissionResponseMessage">
          <part name="body" element="CORE-XSD:COREEnvelopeBatchResultsAckSubmissionResponse">
          </part>
        </message>
        <message name="BatchSubmissionResponseMessage">
          <part name="body" element="CORE-XSD:COREEnvelopeBatchSubmissionResponse">
          </part>
        </message>
        <message name="BatchSubmissionAckRetrievalRequestMessage">
          <part name="body" element="CORE-XSD:COREEnvelopeBatchSubmissionAckRetrievalRequest">
          </part>
        </message>
        <message name="RealTimeResponseMessage">
          <part name="body" element="CORE-XSD:COREEnvelopeRealTimeResponse">
          </part>
        </message>
        <message name="BatchResultsRetrievalResponseMessage">
          <part name="body" element="CORE-XSD:COREEnvelopeBatchResultsRetrievalResponse">
          </part>
        </message>
        <message name="BatchSubmissionAckRetrievalResponseMessage">
          <part name="body" element="CORE-XSD:COREEnvelopeBatchSubmissionAckRetrievalResponse">
          </part>
        </message>
        <message name="BatchResultsRetrievalRequestMessage">
          <part name="body" element="CORE-XSD:COREEnvelopeBatchResultsRetrievalRequest">
          </part>
        </message>
        <message name="RealTimeRequestMessage">
          <part name="body" element="CORE-XSD:COREEnvelopeRealTimeRequest">
          </part>
        </message>
        <message name="BatchResultsAckSubmissionMessage">
          <part name="body" element="CORE-XSD:COREEnvelopeBatchResultsAckSubmission">
          </part>
        </message>
        <message name="BatchSubmissionMessage">
          <part name="body" element="CORE-XSD:COREEnvelopeBatchSubmission">
          </part>
        </message>
        <portType name="CORETransactions">
          <operation name="RealTimeTransaction">
            <input message="CORE:RealTimeRequestMessage">
          </input>
            <output message="CORE:RealTimeResponseMessage">
          </output>
          </operation>
          <operation name="BatchSubmitTransaction">
            <input message="CORE:BatchSubmissionMessage">
          </input>
            <output message="CORE:BatchSubmissionResponseMessage">
          </output>
          </operation>
          <operation name="GenericBatchSubmissionTransaction">
            <input message="CORE:BatchSubmissionMessage">
          </input>
            <output message="CORE:BatchSubmissionResponseMessage">
          </output>
          </operation>
          <operation name="BatchSubmitAckRetrievalTransaction">
            <input message="CORE:BatchSubmissionAckRetrievalRequestMessage">
          </input>
            <output message="CORE:BatchSubmissionAckRetrievalResponseMessage">
          </output>
          </operation>
          <operation name="BatchResultsRetrievalTransaction">
            <input message="CORE:BatchResultsRetrievalRequestMessage">
          </input>
            <output message="CORE:BatchResultsRetrievalResponseMessage">
          </output>
          </operation>
          <operation name="BatchResultsAckSubmitTransaction">
            <input message="CORE:BatchResultsAckSubmissionMessage">
          </input>
            <output message="CORE:BatchResultsAckSubmissionResponseMessage">
          </output>
          </operation>
          <operation name="GenericBatchRetrievalTransaction">
            <input message="CORE:BatchResultsRetrievalRequestMessage">
          </input>
            <output message="CORE:BatchResultsRetrievalResponseMessage">
          </output>
          </operation>
          <operation name="GenericBatchReceiptConfirmationTransaction">
            <input message="CORE:BatchResultsAckSubmissionMessage">
          </input>
            <output message="CORE:BatchResultsAckSubmissionResponseMessage">
          </output>
          </operation>
        </portType>
        <binding name="CoreSoapBinding" type="CORE:CORETransactions">
          <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
          <operation name="RealTimeTransaction">
            <soap12:operation soapAction="RealTimeTransaction" style="document"/>
            <input>
              <soap12:body use="literal"/>
            </input>
            <output>
              <soap12:body use="literal"/>
            </output>
          </operation>
          <operation name="BatchSubmitTransaction">
            <soap12:operation soapAction="BatchSubmitTransaction" style="document"/>
            <input>
              <soap12:body use="literal"/>
            </input>
            <output>
              <soap12:body use="literal"/>
            </output>
          </operation>
          <operation name="GenericBatchSubmissionTransaction">
            <soap12:operation soapAction="GenericBatchSubmissionTransaction" style="document"/>
            <input>
              <soap12:body use="literal"/>
            </input>
            <output>
              <soap12:body use="literal"/>
            </output>
          </operation>
          <operation name="BatchSubmitAckRetrievalTransaction">
            <soap12:operation soapAction="BatchSubmitAckRetrievalTransaction" style="document"/>
            <input>
              <soap12:body use="literal"/>
            </input>
            <output>
              <soap12:body use="literal"/>
            </output>
          </operation>
          <operation name="BatchResultsRetrievalTransaction">
            <soap12:operation soapAction="BatchResultsRetrievalTransaction" style="document"/>
            <input>
              <soap12:body use="literal"/>
            </input>
            <output>
              <soap12:body use="literal"/>
            </output>
          </operation>
          <operation name="BatchResultsAckSubmitTransaction">
            <soap12:operation soapAction="BatchResultsAckSubmitTransaction" style="document"/>
            <input>
              <soap12:body use="literal"/>
            </input>
            <output>
              <soap12:body use="literal"/>
            </output>
          </operation>
          <operation name="GenericBatchRetrievalTransaction">
            <soap12:operation soapAction="GenericBatchRetrievalTransaction" style="document"/>
            <input>
              <soap12:body use="literal"/>
            </input>
            <output>
              <soap12:body use="literal"/>
            </output>
          </operation>
          <operation name="GenericBatchReceiptConfirmationTransaction">
            <soap12:operation soapAction="GenericBatchReceiptConfirmationTransaction" style="document"/>
            <input>
              <soap12:body use="literal"/>
            </input>
            <output>
              <soap12:body use="literal"/>
            </output>
          </operation>
        </binding>
        <service name="Core">
          <port name="CoreSoapPort" binding="CORE:CoreSoapBinding">
            <soap12:address location="http://URL_OF_WEB_SERVICE"/>
          </port>
        </service>
      </definitions>
      

      XSD that's referenced in WSDL

      <?xml version="1.0"?>
      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"   xmlns="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd" targetNamespace="http://www.caqh.org/SOAP/WSDL/CORERule2.2.0.xsd">
        <xs:element name="COREEnvelopeRealTimeRequest">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayloadType" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ProcessingMode" type="RealTimeMode" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="TimeStamp" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="SenderID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ReceiverID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CORERuleVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="Payload" type="xs:string" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="COREEnvelopeRealTimeResponse">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayloadType" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ProcessingMode" type="RealTimeMode" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="TimeStamp" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="SenderID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ReceiverID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CORERuleVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="Payload" type="xs:string" minOccurs="0" maxOccurs="1"/>
              <xs:element name="ErrorCode" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ErrorMessage" type="xs:string" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="COREEnvelopeBatchSubmission">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayloadType" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ProcessingMode" type="BatchMode" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadLength" type="xs:int" minOccurs="1" maxOccurs="1"/>
              <xs:element name="TimeStamp" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="SenderID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ReceiverID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CORERuleVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CheckSum" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="Payload" type="xs:base64Binary" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="COREEnvelopeBatchSubmissionResponse">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayloadType" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ProcessingMode" type="BatchMode" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadLength" type="xs:int" minOccurs="0" maxOccurs="1"/>
              <xs:element name="TimeStamp" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="SenderID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ReceiverID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CORERuleVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CheckSum" type="xs:string" minOccurs="0" maxOccurs="1"/>
              <xs:element name="Payload" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
              <xs:element name="ErrorCode" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ErrorMessage" type="xs:string" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="COREEnvelopeBatchSubmissionAckRetrievalRequest">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayloadType" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ProcessingMode" type="BatchMode" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadLength" type="xs:int" minOccurs="0" maxOccurs="1"/>
              <xs:element name="TimeStamp" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="SenderID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ReceiverID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CORERuleVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CheckSum" type="xs:string" minOccurs="0" maxOccurs="1"/>
              <xs:element name="Payload" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="COREEnvelopeBatchSubmissionAckRetrievalResponse">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayloadType" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ProcessingMode" type="BatchMode" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadLength" type="xs:int" minOccurs="0" maxOccurs="1"/>
              <xs:element name="TimeStamp" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="SenderID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ReceiverID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CORERuleVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CheckSum" type="xs:string" minOccurs="0" maxOccurs="1"/>
              <xs:element name="Payload" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
              <xs:element name="ErrorCode" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ErrorMessage" type="xs:string" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="COREEnvelopeBatchResultsRetrievalRequest">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayloadType" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ProcessingMode" type="BatchMode" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadLength" type="xs:int" minOccurs="0" maxOccurs="1"/>
              <xs:element name="TimeStamp" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="SenderID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ReceiverID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CORERuleVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CheckSum" type="xs:string" minOccurs="0" maxOccurs="1"/>
              <xs:element name="Payload" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="COREEnvelopeBatchResultsRetrievalResponse">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayloadType" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ProcessingMode" type="BatchMode" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadLength" type="xs:int" minOccurs="0" maxOccurs="1"/>
              <xs:element name="TimeStamp" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="SenderID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ReceiverID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CORERuleVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CheckSum" type="xs:string" minOccurs="0" maxOccurs="1"/>
              <xs:element name="Payload" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
              <xs:element name="ErrorCode" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ErrorMessage" type="xs:string" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="COREEnvelopeBatchResultsAckSubmission">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayloadType" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ProcessingMode" type="BatchMode" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadLength" type="xs:int" minOccurs="0" maxOccurs="1"/>
              <xs:element name="TimeStamp" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="SenderID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ReceiverID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CORERuleVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CheckSum" type="xs:string" minOccurs="0" maxOccurs="1"/>
              <xs:element name="Payload" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="COREEnvelopeBatchResultsAckSubmissionResponse">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayloadType" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ProcessingMode" type="BatchMode" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="PayloadLength" type="xs:int" minOccurs="0" maxOccurs="1"/>
              <xs:element name="TimeStamp" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="SenderID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="ReceiverID" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CORERuleVersion" type="xs:string" minOccurs="1" maxOccurs="1"/>
              <xs:element name="CheckSum" type="xs:string" minOccurs="0" maxOccurs="1"/>
              <xs:element name="Payload" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
              <xs:element name="ErrorCode" type="xs:string"  minOccurs="1" maxOccurs="1"/>
              <xs:element name="ErrorMessage" type="xs:string"  minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:simpleType name="RealTimeMode">
          <xs:restriction base="xs:string">
            <xs:pattern value="RealTime"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="BatchMode">
          <xs:restriction base="xs:string">
            <xs:pattern value="Batch"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:schema>
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              kchelluri Kamal Chelluri
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: