Before you begin
Before you can publish a Web Services Description Language (WSDL) file using a URL, the Web services-enabled application should be installed and running.The files referenced by the <wsdl-file> element in the webservices.xml might import other WSDL or XSD files. Typically, all WSDL or XSD files are initially placed into the META-INF/wsdl directory when using enterprise JavaBeans (EJBs) or the WEB-INF/wsdl directory when using Java beans. 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.
Why and when to perform this task
To publish a WSDL file using a URL:
Steps for this task
Each Web service has an endpoint address, like http://example.com/services/stockquote. You can retrieve the outer-most WSDL file (defined by the <wsdl-file> element within the webservices.xml file) by appending the string "/wsdl" or "/wsdl/" to the endpoint address, for example,http://example.com/services/stockquote/wsdl.
Example
<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.
Related tasks
Developing a WSDL file
Publishing WSDL files using the administrative console
Publishing WSDL files using the wsadmin tool