After developing a web-service using the Service resource from the TIBCO Designer palette (ver. 5.6) we need to develop a resource retriever to allow clients to access the service WSDL.
The basic idea behind getting the WSDL for a Service resource web-service is to use the SOAP Retrieve Resources activity (found within the SOAP menu) and point it to the Service resource for the web-service with the filter set to “wsdl”.
The screenshot below shows the basic process for retrieving the WSDL. We will use the HTTP Receiver process starter connected with the SOAP Retrieve Resources which sends its output to Send HTTP Response activity.
Here is how it works:
- A HTTP Receiver forwards the incoming request to a SOAP Retrieve Resources activity (SOAP-RRA).
- The SOAP-RRA retrieves the WSDL text and outputs it to the Send HTTP Response activity.
- The Send HTTP Response activity then sends the WSDL text as response to the HTTP request received by the HTTP Receiver.
- The process ends.
The HTTP Receiver will need an HTTP Connection to complete the configuration.
The key thing here is to configure the SOAP-RRA correctly. The HTTP Receiver even though connected to the SOAP-RRA provides no input to it.
Click on the SOAP-RRA and go to the Input tab in the properties (see the screenshot above). In the Activity Input section we need to configure the resourcePath and filter values.
The reourcePath should point to the Service resource. To get the Service resource path right-click the Service resource for the web-service whose WSDL is required and click on inspect resource.
The Resource Inspector window that pops up will show the resource path for the Service resource (see marked area in screenshot below). Remember to enclose the path in double-quotes!
In the filter value type in “wsdl” (double quotes included) as we want the WSDL to be retrieved.
SOAP-RRA connects next to the Send HTTP Response activity. We connect the resourceData output from SOAP-RRA to the Send HTTP Response asciiContent input as shown in the screenshot below.
The Send HTTP Response activity connects to the End Process activity which completes the process.
Testing the Retriever Process
To test the process start the process tester. Make sure you select the retriever process we have just created AS WELL AS the Service resource for the web-service whose WSDL is being retrieved.
Open up the browser and type in the address defined in the HTTP Connection used for the HTTP Receiver.
The WSDL should pop-up in the browser and if you check the process tester you will find the retriever process would have fired once.
Hi, thank you for the great article, I am getting “BW-COMMON-100501 Job-90000 Error in [BusinessProcesses/test/WSDLRetrieval.process/RetrieveResources]
Unexpected value [ resourcePath ] in the field [ ]
” error. what do you think went wrong? Thanks
LikeLike
Hi Laura,
One of the possible reasons for that error is incorrect Service URI value:
Assign resourcePath value from actual service->WSDL Source->Service URI and try:
LikeLike