WSDL is one of many asset models supported by the WSO2 Governance Registry. Read more on Supported APIs & Standards for a complete list of asset models supported by WSO2 Governance Registry.
Governance Registry does not support the WSDL 2.0 standard out-of-the-box. However, if you need this support to be available, you can extend the WSDLMediaTypeHandler
, ZipWSDLMediaTypeHandler
, and ServiceMediaTypeHandler
support this. For more information on how to configure handlers please read Handler Configuration Details.
Users can upload WSDL files from users local file system as a Governance Archive (See Creating a Governance Archive) or import them from a given URL.
During the importing WSDL is validated and put into the registry. If the given WSDL requires any other WSDL imports, these WSDLs also going through the same process and are imported into the registry. All the schema/policy imports are also downloaded into the registry and put into the location where all the schemas/policies are stored.
The WSDL can have a number of endpoints. The Governance Registry creates new resources for these endpoints and puts them into a general location where all the endpoints are saved.
A single WSDL can have a number of dependent resources at the end of import process and the WSDL resource will have associations and dependencies for those resources according to the relationship.
The registry creates service resources for all the WSDL imports by default and adds some of the useful data into the service resources by parsing the WSDL. For example, name, namespace, WSDL URL (this is the location of WSDL stored in the registry) and endpoints if available in the WSDL.
Validating WSDLs Offline
Users can upload WSDL files to the WSO2 Governance Registry. During the uploading process, the Governance Registry validates each WSDL file during its first addition. However, in order to do that, there should be an active internet connection on the machine which is running the Governance Registry. This page explains the process to follow in order to add and validate WSDLs using Governance Registry on a machine without having an internet connection.
When validating the WSDL, the Governance Registry connects to ws-i.org site, in order to get few resources. See here for more information.
There can be problems and delays in validating WSDL, if the machine doesn't have an active internet connection at the moment. So, as a workaround for this issue, the following sections explain how to host those required resources locally and validate WSDLs using those locally hosted resources without using an internet connection:
Install and run Apache Web Server
If you are not already installed the Apache web server, please refer to this download page to download the latest version of the Apache web server.
For Windows installations, you should download the Windows version of Apache (the file with the .msi extension). For Linux based environments, binary releases are not often up-to-date. Therefore you can build Apache web server from its source in order to get the latest version. See here for a more detailed explanation on how to build the Apache web server from its source for Linux based environments.
To install and run, please refer the relevant section on Apache Web Server official documentation. For Windows installations please refer to the Apache Windows Installations documentation.
At the time when writing this article, the latest Apache web server version is 2.4. Therefore the instructions and references used in this article are related to the latest Apache server documentation version (2.4).
To verify the installations run the Apache server and locate the following link on your browser.
Your browser displays content related to Apache web server. If not, you may have to check the error logs of the Apache web server and resolve issues.
Publish files on Apache Server
Please refer the Apache documentation to locate the "web site publish directory" of the Apache server.
E.g., for Linux it is "/var/www
" and for Windows it can be "C:\Program Files (x86)\Apache Group\Apache2\htdocs
".
As mentioned earlier in this page, WSO2 Governance Registry connects to ws-i.org to download resources (two XML files). Manually download these resources (XML files) and publish them on the Apache web server.
To do so, download the following XML files from a computer, which is having an internet connection. When we are adding WSDL through Governance Registry to complete the validation Governance Registry needs these XML files.
After downloading above files, save them inside your "web site publish directory" of the Apache web server. Please remember to save these files under the corresponding folder structure (that matches the url resource path of ws-i.org site) inside your "web site publish directory" of the Apache web server.
E.g., for a Linux environment it should be:
/var/www/Testing/Tools/2004/12/AP10_BP11_SSBP10_TAD.xml
/var/www/Testing/Tools/2005/01/SSBP10_BP11_TAD_1-0.xml
The above resource files (TAD - Test Assertion Documents) contain test assertions for WS-I profiles. These test assertions are used by the analyzer tool (inside the WSO2 Governance Registry when validating WSDL file), in order to determine the conformance of the Web Service.
To verify what we have done so far, please locate the following links on your browser.
The above links display the content of the TAD XML files in the browser.
Editing the hosts file
Hosts file is a text file that contains entries to map host names to IP addresses. By editing this file it is possible to redirect requests (by the WSO2 Governance Registry) requesting ws-i.org site resources to out locally hosted Apache web server resources. In Linux environment, the hosts file is located at:
/etc/hosts
In Windows it is under:
%SystemRoot%\system32\drivers\etc\hosts.
Please see here to get more information about hosts file paths on different environments. Open the hosts file on your machine and add the following entries to it.
127.0.1.1 www.ws-i.org
127.0.1.1 ws-i.org
It is always best to take a backup of the host file before modifying it. In this page we assume that Apache web server and WSO2 Governance Registry is installed on the same machine. However, if required, you can install Apache web server on another machine with appropriate changes to the host file (which is in the machine which runs the WSO2 Governance Registry). You can point to the Apache web server machine using the host file.
Verifying the steps
To verify these steps, locate the following link on your browser (on the machine which is not having an internet connection),
If you are able to see the content of the above .xml file, that means WSO2 Governance Registry is ready to validate WSDL on a machine which does not have an internet connection.
To add WSDLs to the WSO2 Governance Registry:
- Start up WSO2 Governance Registry and log into it with credentials.
- For information on adding WSDLs, see Adding a SOAP Service.
- If you have followed the above steps correctly, then you should be able to add and validate WSDL resources successfully with the WSO2 Governance Registry which runs on a machine that does not have an internet connection.
This WSDL validation can be skipped by setting the disableWSDLValidation
property to true on the corresponding handler configuration (you can edit handler configurations by editing the <GREG_HOME>/repository/conf/registry.xml
file). If it is possible for you to skip this validation, then you do not need internet connection since those TAD files are required only during the validating phase (i.e. to check the conformance of the Web Service).