简体   繁体   中英

Spring Boot - SOAP WebService doesn't display the WSDL

I need to create a SOAP web service using Spring. I have been following the tutorial from Spring official website: https://spring.io/guides/gs/producing-web-service/

I have successfully deployed the SOAP Web Service from that tutorial in my local machine and I can access the WSDL definition successfully from my browser. After so, I tried to use my existing XSD Schema, but it's not working when I try to access the WSDL definition and the console doesn't show any kind of error.

This is my XSD schema:

<xs:schema version="1.0" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns="http://worldwide.com/p44"
    targetNamespace="http://worldwide.com/p44"
    elementFormDefault="qualified">

  <xs:element name="DispatchRequest" type="DispatchRequestType"/>
  <xs:element name="DispatchResponse" type="DispatchResponseType"/>
  <xs:element name="RateQuoteResponse" type="rateQuoteResponse"/>
  <xs:element name="RateQuotes" type="rateQuoteResponseList"/>
  <xs:element name="RateRequest" type="RateRequest"/>
  <xs:element name="TrackingResponse" type="trackingResponseList"/>
  <xs:element name="TrackingResult" type="TrackingResultType"/>
  <xs:element name="change" type="mergeRecord"/>
  <xs:element name="error" type="serviceError"/>
  <xs:element name="rateDetail" type="rateDetail"/>
  <xs:complexType name="trackingResponseList">
    <xs:sequence>
      <xs:element name="errors" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="error" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="shipmentInfo" type="TrackingResultType" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="serviceError">
    <xs:sequence>
      <xs:element name="errorCode" type="xs:string" minOccurs="0"/>
      <xs:element name="errorMessage" type="xs:string" minOccurs="0"/>
      <xs:element name="vendorErrorCode" type="xs:string" minOccurs="0"/>
      <xs:element name="vendorErrorMessage" type="xs:string" minOccurs="0"/>
      <xs:element name="message" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="TrackingResultType">
    <xs:sequence>
      <xs:element name="lastUpdated" type="xs:string" minOccurs="0"/>
      <xs:element name="actualDeliveryDate" type="xs:string" minOccurs="0"/>
      <xs:element name="appointmentDate" type="xs:string" minOccurs="0"/>
      <xs:element name="appointmentDateEnd" type="xs:string" minOccurs="0"/>
      <xs:element name="billTo" type="addressInfo" minOccurs="0"/>
      <xs:element name="bolNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="carrierNote" type="xs:string" minOccurs="0"/>
      <xs:element name="carrierScac" type="xs:string" minOccurs="0"/>
      <xs:element name="shipmentId" type="xs:string" minOccurs="0"/>
      <xs:element name="shipper" type="addressInfo" minOccurs="0"/>
      <xs:element name="consignee" type="addressInfo" minOccurs="0"/>
      <xs:element name="consigneeAccount" type="xs:string" minOccurs="0"/>
      <xs:element name="currentStatus" type="trackingStatus" minOccurs="0"/>
      <xs:element name="originTerminal" type="terminalInfo" minOccurs="0"/>
      <xs:element name="destinationTerminal" type="terminalInfo" minOccurs="0"/>
      <xs:element name="disclaimer" type="xs:string" minOccurs="0"/>
      <xs:element name="errors" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="error" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="estimatedDeliveryDate" type="xs:string" minOccurs="0"/>
      <xs:element name="invoiceStatus" type="xs:string" minOccurs="0"/>
      <xs:element name="items" type="trackingItem" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="nextTerminal" type="terminalInfo" minOccurs="0"/>
      <xs:element name="notifyContact" type="xs:string" minOccurs="0"/>
      <xs:element name="numPieces" type="xs:int" minOccurs="0"/>
      <xs:element name="otherBOLNums" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="otherPONums" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="parentPro" type="xs:string" minOccurs="0"/>
      <xs:element name="paymentTerms" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupDateTime" type="xs:string" minOccurs="0"/>
      <xs:element name="poNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="proNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="receivedBy" type="xs:string" minOccurs="0"/>
      <xs:element name="receivedByDate" type="xs:string" minOccurs="0"/>
      <xs:element name="serviceType" type="xs:string" minOccurs="0"/>
      <xs:element name="shipmentExceptions" type="exceptionStatus" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="shipperAccount" type="xs:string" minOccurs="0"/>
      <xs:element name="statusHistory" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="status" type="trackingStatus" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="totalQuantity" type="xs:int" minOccurs="0"/>
      <xs:element name="totalWeight" type="xs:int" minOccurs="0"/>
      <xs:element name="trailerNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="vendor" type="xs:string" minOccurs="0"/>
      <xs:element name="images" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="imageRecord" type="imageRecord" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="changeLog" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="change" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="addressInfo">
    <xs:sequence>
      <xs:element name="address1" type="xs:string" minOccurs="0"/>
      <xs:element name="address2" type="xs:string" minOccurs="0"/>
      <xs:element name="address3" type="xs:string" minOccurs="0"/>
      <xs:element name="companyName" type="xs:string" minOccurs="0"/>
      <xs:element name="contactName" type="xs:string" minOccurs="0"/>
      <xs:element name="city" type="xs:string" minOccurs="0"/>
      <xs:element name="stateName" type="xs:string" minOccurs="0"/>
      <xs:element name="country" type="xs:string" minOccurs="0"/>
      <xs:element name="postalCode" type="xs:string" minOccurs="0"/>
      <xs:element name="phoneNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="phoneNumber2" type="xs:string" minOccurs="0"/>
      <xs:element name="email" type="xs:string" minOccurs="0"/>
      <xs:element name="faxNumber" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="trackingStatus">
    <xs:sequence>
      <xs:element name="code" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="city" type="xs:string" minOccurs="0"/>
      <xs:element name="stateName" type="xs:string" minOccurs="0"/>
      <xs:element name="interlineScac" type="xs:string" minOccurs="0"/>
      <xs:element name="location" type="xs:string" minOccurs="0"/>
      <xs:element name="notes" type="xs:string" minOccurs="0"/>
      <xs:element name="serviceCenter" type="terminalInfo" minOccurs="0"/>
      <xs:element name="timestamp" type="xs:string" minOccurs="0"/>
      <xs:element name="updateTime" type="xs:dateTime" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="terminalInfo">
    <xs:complexContent>
      <xs:extension base="addressInfo">
        <xs:sequence>
          <xs:element name="terminalId" type="xs:string" minOccurs="0"/>
          <xs:element name="terminalName" type="xs:string" minOccurs="0"/>
          <xs:element name="terminalNumber" type="xs:string" minOccurs="0"/>
          <xs:element name="terminalCarrier" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="trackingItem">
    <xs:sequence>
      <xs:element name="amount" type="xs:decimal" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="descriptionCode" type="xs:string" minOccurs="0"/>
      <xs:element name="freightClass" type="xs:string" minOccurs="0"/>
      <xs:element name="pieces" type="xs:int" minOccurs="0"/>
      <xs:element name="rate" type="xs:decimal" minOccurs="0"/>
      <xs:element name="weight" type="xs:int" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="exceptionStatus">
    <xs:complexContent>
      <xs:extension base="trackingStatus">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="imageRecord">
    <xs:sequence>
      <xs:element name="imageType" type="imageType" minOccurs="0"/>
      <xs:element name="imageFormat" type="imageFormat" minOccurs="0"/>
      <xs:element name="imageLink" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="mergeRecord">
    <xs:sequence>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="RateRequest">
    <xs:sequence>
      <xs:element name="timeout" type="xs:int"/>
      <xs:element name="shipDate" type="xs:string" minOccurs="0"/>
      <xs:element name="shipTimeStart" type="xs:string" minOccurs="0"/>
      <xs:element name="shipTimeEnd" type="xs:string" minOccurs="0"/>
      <xs:element name="returnMultiple" type="xs:boolean" minOccurs="0"/>
      <xs:element name="loginGroupKey" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryDate" type="xs:string" minOccurs="0"/>
      <xs:element name="delTimeStart" type="xs:string" minOccurs="0"/>
      <xs:element name="delTimeEnd" type="xs:string" minOccurs="0"/>
      <xs:element name="destination" type="addressInfo" minOccurs="0"/>
      <xs:element name="origin" type="addressInfo" minOccurs="0"/>
      <xs:element name="billTo" type="addressInfo" minOccurs="0"/>
      <xs:element name="accountNumbers">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="key" minOccurs="0" type="xs:string"/>
                  <xs:element name="value" minOccurs="0" type="xs:string"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="accountConfigs" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="account" type="accountConfigType" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="lineItems" type="rateQuoteLineImpl" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="accessorials" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="code" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="cubicFeet" type="xs:decimal" minOccurs="0"/>
      <xs:element name="defaultLogins" type="xs:boolean" minOccurs="0"/>
      <xs:element name="mapChargeCodes" type="xs:boolean" minOccurs="0"/>
      <xs:element name="requestedScacs" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="limitByScacs" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="items" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="item" type="rateQuoteLineImpl" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="accountConfigType">
    <xs:sequence>
      <xs:element name="vendorCode" type="xs:string" minOccurs="0"/>
      <xs:element name="siteLoginName" type="xs:string" minOccurs="0"/>
      <xs:element name="defaultAccount" type="xs:string" minOccurs="0"/>
      <xs:element name="accountNumber2" type="xs:string" minOccurs="0"/>
      <xs:element name="credentials" type="xs:string" minOccurs="0"/>
      <xs:element name="paymentTerms" type="xs:string" minOccurs="0"/>
      <xs:element name="authKey" type="xs:string" minOccurs="0"/>
      <xs:element name="authKey2" type="xs:string" minOccurs="0"/>
      <xs:element name="shipmentTerms" type="xs:string" minOccurs="0"/>
      <xs:element name="inboundPayTerms" type="xs:string" minOccurs="0"/>
      <xs:element name="outboundPayTerms" type="xs:string" minOccurs="0"/>
      <xs:element name="direction" type="xs:string" minOccurs="0"/>
      <xs:element name="paymentType" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="rateQuoteLineImpl">
    <xs:sequence>
      <xs:element name="nmfcItem" type="xs:string" minOccurs="0"/>
      <xs:element name="nmfcSub" type="xs:string" minOccurs="0"/>
      <xs:element name="weight" type="xs:string" minOccurs="0"/>
      <xs:element name="weightUnit" type="xs:string" minOccurs="0"/>
      <xs:element name="freightClass" type="xs:string" minOccurs="0"/>
      <xs:element name="length" type="xs:decimal" minOccurs="0"/>
      <xs:element name="width" type="xs:decimal" minOccurs="0"/>
      <xs:element name="height" type="xs:decimal" minOccurs="0"/>
      <xs:element name="dimUnit" type="xs:string" minOccurs="0"/>
      <xs:element name="palletCount" type="xs:int" minOccurs="0"/>
      <xs:element name="numPieces" type="xs:int" minOccurs="0"/>
      <xs:element name="pieceType" type="xs:string" minOccurs="0"/>
      <xs:element name="packageType" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="stackable" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DispatchResponseType">
    <xs:sequence>
      <xs:element name="errors" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="error" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="bolLink" type="xs:string" minOccurs="0"/>
      <xs:element name="carrierBolLink" type="xs:string" minOccurs="0"/>
      <xs:element name="contactName" type="xs:string" minOccurs="0"/>
      <xs:element name="debtor" type="xs:string" minOccurs="0"/>
      <xs:element name="origin" type="addressInfo" minOccurs="0"/>
      <xs:element name="destination" type="addressInfo" minOccurs="0"/>
      <xs:element name="dockCloseTime" type="xs:string" minOccurs="0"/>
      <xs:element name="labelLink" type="xs:string" minOccurs="0"/>
      <xs:element name="lineItems" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="item" type="lineItem" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="pickupDateTime" type="xs:string" minOccurs="0"/>
      <xs:element name="poNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="proNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="bolNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="quoteDateTime" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="quoteNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="quoteTotal" type="xs:decimal" minOccurs="0"/>
      <xs:element name="quoteVersion" type="xs:string" minOccurs="0"/>
      <xs:element name="referenceNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="scac" type="xs:string" minOccurs="0"/>
      <xs:element name="vendor" type="xs:string" minOccurs="0"/>
      <xs:element name="transitTime" type="xs:int" minOccurs="0"/>
      <xs:element name="serviceTypeCode" type="xs:string" minOccurs="0"/>
      <xs:element name="serviceTypeDescription" type="xs:string" minOccurs="0"/>
      <xs:element name="stopNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="terminalCode" type="xs:string" minOccurs="0"/>
      <xs:element name="terminalPhone" type="xs:string" minOccurs="0"/>
      <xs:element name="trackingNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="requestId" type="xs:string" minOccurs="0"/>
      <xs:element name="vendorNote" type="xs:string" minOccurs="0"/>
      <xs:element name="barcodeNumber" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="lineItem">
    <xs:sequence>
      <xs:element name="code" type="xs:string" minOccurs="0"/>
      <xs:element name="quantity" type="xs:int"/>
      <xs:element name="weight" type="xs:int"/>
      <xs:element name="hazmatId" type="xs:string" minOccurs="0"/>
      <xs:element name="shippingName" type="xs:string" minOccurs="0"/>
      <xs:element name="hazmatClass" type="xs:string" minOccurs="0"/>
      <xs:element name="packagingGroup" type="xs:string" minOccurs="0"/>
      <xs:element name="weightUnit" type="xs:string" minOccurs="0"/>
      <xs:element name="freightClass" type="xs:string" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="hazmat" type="xs:boolean" minOccurs="0"/>
      <xs:element name="pieces" type="xs:int"/>
      <xs:element name="packageType" type="xs:string" minOccurs="0"/>
      <xs:element name="length" type="xs:int" minOccurs="0"/>
      <xs:element name="width" type="xs:int" minOccurs="0"/>
      <xs:element name="height" type="xs:int" minOccurs="0"/>
      <xs:element name="density" type="xs:decimal" minOccurs="0"/>
      <xs:element name="nmfcItem" type="xs:string" minOccurs="0"/>
      <xs:element name="nmfcSub" type="xs:string" minOccurs="0"/>
      <xs:element name="stackable" type="xs:boolean"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="DispatchRequestType">
    <xs:sequence>
      <xs:element name="vendorCode" type="xs:string" minOccurs="0"/>
      <xs:element name="accountConfig" type="accountConfigType" minOccurs="0"/>
      <xs:element name="accountNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="contractId" type="xs:string" minOccurs="0"/>
      <xs:element name="loginGroupKey" type="xs:string" minOccurs="0"/>
      <xs:element name="emergencyContact" type="xs:string" minOccurs="0"/>
      <xs:element name="emergencyPhone" type="xs:string" minOccurs="0"/>
      <xs:element name="referenceNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="bolNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="proNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="scac" type="xs:string" minOccurs="0"/>
      <xs:element name="quoteNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="bolPDFContent" type="xs:string" minOccurs="0"/>
      <xs:element name="createBOL" type="xs:boolean"/>
      <xs:element name="quoteTotal" type="xs:decimal" minOccurs="0"/>
      <xs:element name="requestBOL" type="xs:boolean" minOccurs="0"/>
      <xs:element name="origin" type="addressInfo" minOccurs="0"/>
      <xs:element name="destination" type="addressInfo" minOccurs="0"/>
      <xs:element name="lineItems" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="item" type="lineItem" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="pickupNote" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryNote" type="xs:string" minOccurs="0"/>
      <xs:element name="dockCloseTime" type="xs:string" minOccurs="0"/>
      <xs:element name="billTo" type="addressInfo" minOccurs="0"/>
      <xs:element name="requester" type="addressInfo" minOccurs="0"/>
      <xs:element name="poNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="bolContactPhone" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupDateTime" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryDateTime" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupContactName" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupPhone" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryContact" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryContactPhone" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupEmail" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupContactCompany" type="xs:string" minOccurs="0"/>
      <xs:element name="accessorials" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="code" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="emailBOLShip" type="xs:boolean"/>
      <xs:element name="emailNotifyShip" type="xs:boolean"/>
      <xs:element name="emailApptShip" type="xs:boolean"/>
      <xs:element name="emailDelivShip" type="xs:boolean"/>
      <xs:element name="emailBOLCons" type="xs:boolean"/>
      <xs:element name="emailNotifyCons" type="xs:boolean"/>
      <xs:element name="emailApptCons" type="xs:boolean"/>
      <xs:element name="emailDelivCons" type="xs:boolean"/>
      <xs:element name="emailConfirm" type="xs:boolean" minOccurs="0"/>
      <xs:element name="pickupStartTime" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupEndTime" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryStartTime" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryEndTime" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="rateQuoteResponseList">
    <xs:sequence>
      <xs:element name="rateQuote" type="rateQuoteResponse" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="loginGroupKey" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="rateQuoteResponse">
    <xs:sequence>
      <xs:element name="scac" type="xs:string" minOccurs="0"/>
      <xs:element name="vendor" type="xs:string" minOccurs="0"/>
      <xs:element name="contractId" type="xs:string" minOccurs="0"/>
      <xs:element name="originTerminal" type="terminalInfo" minOccurs="0"/>
      <xs:element name="destinationTerminal" type="terminalInfo" minOccurs="0"/>
      <xs:element name="errors" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="error" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="carrierNote" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryDate" type="xs:string" minOccurs="0"/>
      <xs:element name="quoteNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="expirationDate" type="xs:string" minOccurs="0"/>
      <xs:element name="quoteDate" type="xs:string" minOccurs="0"/>
      <xs:element ref="rateDetail" minOccurs="0"/>
      <xs:element name="serviceType" type="xs:string" minOccurs="0"/>
      <xs:element name="totalPallets" type="xs:int" minOccurs="0"/>
      <xs:element name="totalPieces" type="xs:int" minOccurs="0"/>
      <xs:element name="totalWeight" type="xs:int" minOccurs="0"/>
      <xs:element name="transitTime" type="xs:int" minOccurs="0"/>
      <xs:element name="alternateRates" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="alternateRate" type="rateDetail" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="rateDetail">
    <xs:sequence>
      <xs:element name="rateAdjustments" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="rateAdjustment" type="rateAdjustment" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="total" type="xs:decimal" minOccurs="0"/>
      <xs:element name="subtotal" type="xs:decimal" minOccurs="0"/>
      <xs:element name="deliveryDate" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="rateAdjustment">
    <xs:sequence>
      <xs:element name="freightClass" type="xs:string" minOccurs="0"/>
      <xs:element name="weight" type="xs:int" minOccurs="0"/>
      <xs:element name="pieces" type="xs:int" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="descriptionCode" type="xs:string" minOccurs="0"/>
      <xs:element name="amount" type="xs:decimal" minOccurs="0"/>
      <xs:element name="rate" type="xs:decimal" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="imageType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="BOL"/>
      <xs:enumeration value="INVOICE"/>
      <xs:enumeration value="DR"/>
      <xs:enumeration value="WCERT"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="imageFormat">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PNG"/>
      <xs:enumeration value="TIF"/>
      <xs:enumeration value="PDF"/>
      <xs:enumeration value="JPG"/>
      <xs:enumeration value="GIF"/>
    </xs:restriction>
  </xs:simpleType>

And finally my main Spring-Boot class:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

I know this is a large XSD schema, but I'm completely lost. As you can see, I'm following the same process as the sample from Spring website I mentioned before (using Maven but just skipping the Repository as I don't need it now), but still I'm not able to make it work with the information that I need.

The classes from this schema are generated fine. The problem is that when I execute mvn spring-boot:run command from my project route, there are no errors in the console, but when I try to access my WSDL file for this project at http://localhost:8080/ws/dispatch?wsdl , the browser just says:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Wed Oct 14 09:24:31 CDT 2015 There was an unexpected error (type=Not Found, status=404). No message available

And the console shows nothing. Please let me know what I'm doing wrong. Maybe it's the XSD schema, or maybe the Endpoint, or maybe the WebServiceConfig. Any kind of help would be very much appreciated.

I found the problem. It is related to the XSD schema. For some reason, Spring doesn't like the request or the response objects to be defined in separated elements. I mean instead of <xs:element name="DispatchRequest" type="DispatchRequestType"/> , I had to use

<xs:element name="DispatchRequest">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="vendorCode" type="xs:string" minOccurs="0"/>
      <xs:element name="accountConfig" type="tns:accountConfigType" minOccurs="0"/>
      <xs:element name="accountNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="contractId" type="xs:string" minOccurs="0"/>
      <xs:element name="loginGroupKey" type="xs:string" minOccurs="0"/>
      <xs:element name="emergencyContact" type="xs:string" minOccurs="0"/>
      <xs:element name="emergencyPhone" type="xs:string" minOccurs="0"/>
      <xs:element name="referenceNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="bolNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="proNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="scac" type="xs:string" minOccurs="0"/>
      <xs:element name="quoteNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="bolPDFContent" type="xs:string" minOccurs="0"/>
      <xs:element name="createBOL" type="xs:boolean"/>
      <xs:element name="quoteTotal" type="xs:decimal" minOccurs="0"/>
      <xs:element name="requestBOL" type="xs:boolean" minOccurs="0"/>
      <xs:element name="origin" type="tns:addressInfo" minOccurs="0"/>
      <xs:element name="destination" type="tns:addressInfo" minOccurs="0"/>
      <xs:element name="lineItems" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="item" type="tns:lineItem" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="pickupNote" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryNote" type="xs:string" minOccurs="0"/>
      <xs:element name="dockCloseTime" type="xs:string" minOccurs="0"/>
      <xs:element name="billTo" type="tns:addressInfo" minOccurs="0"/>
      <xs:element name="requester" type="tns:addressInfo" minOccurs="0"/>
      <xs:element name="poNumber" type="xs:string" minOccurs="0"/>
      <xs:element name="bolContactPhone" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupDateTime" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryDateTime" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupContactName" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupPhone" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryContact" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryContactPhone" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupEmail" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupContactCompany" type="xs:string" minOccurs="0"/>
      <xs:element name="accessorials" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="code" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="emailBOLShip" type="xs:boolean"/>
      <xs:element name="emailNotifyShip" type="xs:boolean"/>
      <xs:element name="emailApptShip" type="xs:boolean"/>
      <xs:element name="emailDelivShip" type="xs:boolean"/>
      <xs:element name="emailBOLCons" type="xs:boolean"/>
      <xs:element name="emailNotifyCons" type="xs:boolean"/>
      <xs:element name="emailApptCons" type="xs:boolean"/>
      <xs:element name="emailDelivCons" type="xs:boolean"/>
      <xs:element name="emailConfirm" type="xs:boolean" minOccurs="0"/>
      <xs:element name="pickupStartTime" type="xs:string" minOccurs="0"/>
      <xs:element name="pickupEndTime" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryStartTime" type="xs:string" minOccurs="0"/>
      <xs:element name="deliveryEndTime" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

Thank you so much to those trying to help me out. I really appreciate your willing to help people.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM