You can publish a Web Services Description Language (WSDL) file using a URL.
The files referenced by the <wsdl-file> element in the webservices.xml might import other WSDL or XML Schema Definition (XSD) files. Typically, all WSDL or XSD files are initially placed into the META-INF/wsdl directory when using Enterprise JavaBeans (EJB) or the WEB-INF/wsdl directory when using Java. If your WSDL or XSD files are not placed in one of these directories, the file referenced by the <wsdl-file> and its imported files are copied to the wsdl directory for publishing purposes.
There are two different forms of URL query strings. The first appends /wsdl to the service and returns only HTTP and JMS bindings. The second appends /extwsdl to the service and returns the extended WSDL file, including HTTP, JMS, and EJB bindings. If a WSDL file contains only EJB bindings and the /wsdl query is used, an error message displays in the browser saying there are no HTTP or JMS bindings in the WSDL file. The error message suggests using the /extwsdl query instead. Publishing a WSDL file using a URL requires that the application have a web module; either provided by the application or in the form of an HTTP router module. If an EJB application contains a WSDL file with only JMS or EJB Web service bindings, the endptEnabler command can be used to add an HTTP router module to the application.
To publish a WSDL file using a URL:
<module-root>/
WEB-INF/
webservices.xml /* the <wsdl-file> element points to "WEB-INF/wsdl/fooImpl.wsdl"*/
web.xml
ibm-webservices-bnd.xml
wsdl/
fooImpl.wsdl /* imports foo.wsdl which is an interface wsdl */
foo.wsdl /* type definition for the interface */
If the SOAP address for the foo service is http://examples.com:9080/services/foo, the simple way to retrieve the foo service's outer-most WSDL is with the following form: http://examples.com:9090/services/foo/wsdl or http://examples.com:9090/services/foo/wsdl/. The URL is redirected to http://examples.com:9090/services/foo/wsdl/fooImpl.wsdl, where fooImpl.wsdl is the name of the outer-most WSDL file.
Since the fooImpl.wsdl file has the import <import namespace="http://examples.com/foo" location="a/b/foo.wsdl>, use the URL http://examples.com:9090/services/foo/wsdl/a/b/foo.wsdl to obtain the foo.wsdl file.