Publicación de archivos WSDL mediante un URL
Puede publicar un archivo WSDL (Web Services Description Language) utilizando un URL.
Antes de empezar
Los archivos a los que hace referencia el elemento <wsdl-file> en el archivo webservices.xml podrían importar otros archivos WSDL o XSD (XML Schema Definition). Generalmente, todos los archivos WSDL o XSD se encuentran inicialmente en el directorio META-INF/wsdl cuando se utilizan EJB (Enterprise JavaBeans) o en el directorio WEB-INF/wsdl cuando se utilizan Java™. Si los archivos WSDL o XSD no se colocan en ninguno de estos directorios, el archivo al que hace referencia <wsdl-file> y sus archivos importados se copian al directorio wsdl para su publicación.
Hay dos formatos diferentes de series de consulta URL. El primero anexa /wsdl al servicio y devuelve sólo enlaces HTTP y JMS. El segundo anexa /extwsdl al servicio y devuelve el archivo WSDL ampliado, e incluye enlaces HTTP, JMS y EJB. Si un archivo WSDL contiene sólo enlaces EJB y se utiliza la consulta /wsdl, aparece un mensaje de error en el navegador indicando que no hay enlaces HTTP o JMS en el archivo WSDL. El mensaje de error sugiere que se utilice mejor la consulta /extwsdl. La publicación de un archivo WSDL utilizando un URL requiere que la aplicación tenga un módulo web; ya sea proporcionado por la aplicación o en forma de un módulo de direccionador HTTP. Si una aplicación EJB contiene un archivo WSDL sólo con enlaces de servicio web JMS o EJB, se puede utilizar el mandato endptEnabler para añadir un módulo de direccionador HTTP a la aplicación.
Acerca de esta tarea
Para publicar un archivo WSDL mediante un URL:
Procedimiento
Ejemplo
<module-root>/
WEB-INF/
webservices.xml /* el elemento <wsdl-file> señala a "WEB-INF/wsdl/fooImpl.wsdl"*/
web.xml
ibm-webservices-bnd.xml
wsdl/
fooImpl.wsdl /* importa foo.wsdl que es una wsdl de interfaz */
foo.wsdl /* definición de tipo para la interfaz */
Si la dirección SOAP para el servicio foo es http://examples.com:9080/services/foo, el modo más sencillo de recuperar el WSDL externo del servicio foo es mediante el siguiente formato: http://examples.com:9090/services/foo/wsdl o http://examples.com:9090/services/foo/wsdl/. El URL se redirige a http://examples.com:9090/services/foo/wsdl/fooImpl.wsdl, donde fooImpl.wsdl es el nombre del archivo WSDL externo.
Puesto que el archivo fooImpl.wsdl tiene la importación de <import namespace="http://examples.com/foo" location="a/b/foo.wsdl>, utilice el URL http://examples.com:9090/services/foo/wsdl/a/b/foo.wsdl para obtener el archivo foo.wsdl.