WSDL-Dateien mit einem URL veröffentlichen
Sie können eine WSDL-Datei (Web Services Description Language) über einen URL veröffentlichen.
Vorbereitende Schritte
Die mit dem Element <wsdl-file> in der Datei webservices.xml referenzierten Dateien können andere WSDL- oder XSD-Dateien (XML Schema Definition) importieren. In der Regel werden alle WSDL- oder XSD-Dateien bei Verwendung von Enterprise JavaBeans (EJBs) ursprünglich in das Verzeichnis META-INF/wsdl und bei Verwendung von JavaBeans in das Verzeichnis WEB-INF/wsdl gestellt. Wenn Ihre WSDL- oder XSD-Dateien nicht in eines dieser Verzeichnisse gestellt werden, werden die im Element <wsdl-file> referenzierte Datei und die zugehörigen importierten Dateien für die Veröffentlichung in das Verzeichnis wsdl kopiert.
Es gibt zwei Formen von URL-Abfragezeichenfolgen. Bei der einen wird die Zeichenfolge /wsdl an den Service angefügt, und es werden nur HTTP- und JMS-Bindungen zurückgegeben. Bei der zweiten wird die Zeichenfolge /extwsdl an den Servicenamen angefügt, und es wird die erweiterte WSDL-Datei einschließlich HTTP-, JMS- und EJB-Bindungen zurückgegeben. Wenn eine WSDL-Datei nur EJB-Bindungen enthält und die /wsdl-Abfrage verwendet wird, erscheint eine Fehlernachricht im Browser, die besagt, dass keine HTTP- oder JMS-Bindungen in der WSDL-Datei vorhanden sind. In der Fehlernachricht wird empfohlen, stattdessen die /extwsdl-Abfrage zu verwenden. Wird eine WSDL-Datei mit einem URL veröffentlicht, muss die Anwendung ein Webmodul besitzen, das entweder von der Anwendung oder in Form eines HTTP-Routermoduls bereitgestellt wurde. Wenn eine EJB-Anwendung eine WSDL-Datei enthält, in der sich nur JMS- oder EJB-Web-Service-Bindungen befinden, können Sie mit dem Befehl endptEnabler ein HTTP-Routermodul zur Anwendung hinzufügen.
Informationen zu diesem Vorgang
Gehen Sie wie folgt vor, um eine WSDL-Datei mit einem URL zu veröffentlichen:
Vorgehensweise
Beispiel
<module-root>/
WEB-INF/
webservices.xml /* das Element <wsdl-file> zeigt auf "WEB-INF/wsdl/fooImpl.wsdl"*/
web.xml
ibm-webservices-bnd.xml
wsdl/
fooImpl.wsdl /* Importiert die Datei foo.wsdl, die eine Schnittstellen-WSDL ist */
foo.wsdl /* Typdefinition für die Schnittstelle */
Wenn die SOAP-Adresse für den Service foo http://examples.com:9080/services/foo ist, kann die übergeordnete WSDL des Service foo ganz einfach mit http://examples.com:9090/services/foo/wsdl oder http://examples.com:9090/services/foo/wsdl/ abgerufen werden. Der URL wird zu http://examples.com:9090/services/foo/wsdl/fooImpl.wsdl umbeleitet, wobei fooImpl.wsdl der Name der übergeordneten WSDL-Datei ist.
Da die Datei fooImpl.wsdl die Importanweisung <import namespace="http://examples.com/foo" location="a/b/foo.wsdl> enthält, verwenden Sie den URL http://examples.com:9090/services/foo/wsdl/a/b/foo.wsdl, um die Datei foo.wsdl abzurufen.