Step 1: Get the WSDL description and generate server stub
Use the fglwsdl tool to generate the BDL server stub from a WSDL.
This tutorial uses the Calculator service defined in Example 1: Writing the entire server application to obtain the WSDL
information. The
fglwsdl -s module-name
command generates
a corresponding BDL server stub. You must provide the name of the GWS server application
module ("serviceImp" in the sample) where the service finds the functions for the service
operations at
runtime:fglwsdl -s serviceImp -soap12 -o example1 http://localhost:8090/MyCalculator?WSDL
The "MyCalculator" service must be running in order to obtain the WSDL information.
For an more information on using this command see Generate server stub file.
If you need to generate stub files that are compatible with your existing GWS client
application using GLOBALS
, see Get the WSDL description and generate legacy files.
The generated .4gl file
The generated stub file (example1Service.4gl in the example) contains a
single function that creates the service, publishes the operation, and registers the service. The
Web Service Style that is created is determined by the style specified in the WSDL information. The
functions in this file accomplish the same tasks as Step 3: Create the service and operations and Step 4: Register the service of Example 1. Do not modify this
file.
# example1Service.4gl
# Generated file containing the function Createexample1Service
IMPORT com
IMPORT FGL serviceImp -- import the service operation module
# FUNCTION Createexample1Service
# RETURNING soapstatus
FUNCTION Createexample1Service()
DEFINE service com.WebService
DEFINE operation com.WebOperation
# Set ERROR handler
WHENEVER ANY ERROR GOTO error
# Create Web Service
LET service = com.WebService.CreateWebService(
"MyCalculator",
"http://tempuri.org/webservices")
# Publish Operation : Add
LET operation = com.WebOperation.CreateRPCStyle(
"serviceImp.Add",
"Add",
Add,
AddResponse)
CALL service.publishOperation(operation,"")
# Register Service
CALL com.WebServiceEngine.RegisterService(service)
RETURN 0
# ERROR handler
LABEL error:
RETURN status
# Unset ERROR handler
WHENEVER ANY ERROR STOP
END FUNCTION