Obtaining WSDL from a Deployed 10g BPEL Process
By Antony Reynolds on Nov 10, 2009
We always talk about the virtues of loose coupling with SOA, and the service interface is a key component of this. Often we need to extract the service interface from a deployed BPEL process in order to call the process, or make use some of the some of the same services that the BPEL process calls. When we deploy a BPEL process both the WSDLs implemented by the process and the WSDLs invoked by the service are all available through the BPEL console.
Navigating to your Process
Obtaining the WSDLs of a process is very easy. Log in to BPEL console and select the processes tab.
Then select the desired process.
This will display the process details.
Obtaining the WSDL Implemented by Our Process
To obtain the WSDL interface to the process click on the WSDL tab. Ensure that you have the correct version selected.
This will bring up the WSDL associated with the partner link implemented by this process.
Obtaining the WSDLs Called by Our Process
To obtain the WSDLs called by the process then go to the descriptor tab.
This provides a list of all the partner links in the BPEL process, including the partner links implemented by the BPEL process.
From here we can select the WSDL that is needed. We can also see the properties associated with the partner link.
Note that often the BPEL designer will have created a wrapper WSDL that adds partner link information that is required by BPEL. If this is the case, and it will be the case for most external WSDL documents, then it is necessary to examine the wrapper WSDL and extract the location attribute of the WSDL import statement.
This can then be plugged into URL of the wrapper WSDL to provide the actual service WSDL. Usuall this can also be obtained by removing the “Ref” suffice from the partner link WSDL.
This will provide the actual WSDL that is being used by our BPEL process, rather than the wrapper that references it.
Why go to all this trouble, what is the value in obtaining the WSDLs used by a BPEL process?
Well there are several reasons. A few are outlined below
- There may be difference in behavior between different environments and we wish to confirm that they are using the same WSDL definitions.
- We may need to create a test environment that requires us to emulate WSDL services provided.
- We may want to check endpoint details to ensure that we are able to navigate through firewalls in our environment.
- We may not have immediate access to the BPEL project and want to check some WSDL interface settings.
- We may just be nosy!
Download the Whole BPEL Process
It is also possible to download the whole BPEL suitcase (packaged process) by selecting the Manage tab of the process we want to download under the Processes tab.
At the bottom of this screen we can download the suitcase by clicking the Export Process button. This downloads the suitcase as a zip file.
Often we are looking at deployed processes without easy access to the original JDeveloper project. Through the BPEL console we can verify both individual WSDL interfaces and also download the whole BPEL source, making it easy to check what is happening. So remember, next time you are faced with odd behavior and want to look at the BPEL source or partner link details, you don’t need to call the developer!