Try OpenEdge Now
skip to main content
Web Services
Creating OpenEdge SOAP Web Services : Testing and Debugging OpenEdge SOAP Web Services : Sample error scenarios : Scenario 2: ABL updated, but Web service not redeployed
 
Scenario 2: ABL updated, but Web service not redeployed
In this scenario, ABL is updated with a different procedure prototype (signature), but the Web service is not updated accordingly. At this point:
1. The client sends the following method request:
FindCustomerByNum(3, custNameVar)
2. The WSA gets the request and asks the AppServer to run the procedure FindCustomerByNum.p.
3. The AppServer:
a. Tries to run FindCustomerByNum.p
b. Detects a parameter-type mismatch and records the following error message in its log, *.server.log:
[02/12/11@16:07:01.427-0500] P-000371 T-000370 0 AS --
  Mismatched parameter types passed to procedure   OrderInfo/FindCustomerByNum.p. (3230)
c. Returns the error to the WSA
4. The WSA:
a. Records the following message in its log:
[02/12/11@16:07:01.802-0500] P-000120 T-Thread-11 2 OrderInfo ABL-Provider
(reqid:6) Error in SOAP request execution: ABL
ERROR condition: Mismatched parameter types passed to
procedure OrderInfo/FindCustomerByNum.p. (3230) (7211) (10926)
b. Sends the following SOAP containing a SOAP fault back to the client:
<?xml version="1.0" encoding="UTF-8" ?>
<soap:Envelope namespaces defined here…>
  <soap:Body>
    <soap:Fault>
      <faultcode>SOAP-ENV:Server</faultcode>
      <faultstring>An error was detected … request. (10893)
      </faultstring>
      <detail>
        <FaultDetail xmlns="http://servicehost:8080/wsa/wsa1">
          <errorMessage>Error in SOAP request execution: ABL ERROR
            condition: Mismatched parameter types passed to
            procedure OrderInfo/FindCustomerByNum.p. … (10926)
          </errorMessage>
          <requestID>2e62cab6b81150d5:-87f76e:f20f57227d:-8000#6
          </requestID>
        </FaultDetail>
      </detail>
    </soap:Fault>
  </soap:Body>
</soap:Envelope>
This example uses a value of 3 for the serviceFaultLevel property.
Notice the correspondence between the "(reqid:6)" string in the log file entry and the "<requestID> ...2e62...#6" string in the SOAP fault message, indicating information for the same request.
5. The interface translates the SOAP fault into a SOAP exception.
6. The client catches the SOAP exception.
7. The client displays the following error message (assuming the client application has a user interface):