使用 URL 发布 WSDL 文件
可以使用 URL 发布 Web Service 描述语言 (WSDL) 文件。
开始之前
webservices.xml 中的 <wsdl-file> 元素引用的文件可导入其他 WSDL 或 XML 模式定义 (XSD) 文件。通常,当使用 Enterprise JavaBeans (EJB) 时,所有 WSDL 或 XSD 文件最初都被放入 META-INF/wsdl 目录,而当使用 Java™ 时,他们被放入 WEB-INF/wsdl 目录。 如果 WSDL 或 XSD 文件未放入这些目录中的某个目录,则 <wsdl-file> 引用的文件及其导入的文件都复制到 wsdl/ 目录,以供发布。
有两种不同的 URL 查询字符串格式。第一种格式将 /wsdl 追加到服务,并仅返回 HTTP 和 JMS 绑定。 第二种格式将 /extwsdl 追加到服务,并返回扩展的 WSDL 文件(包括 HTTP、JMS 和 EJB 绑定)。如果 WSDL 文件仅包含 EJB 绑定并且使用了 /wsdl 查询,那么在浏览器中显示的错误消息指出在 WSDL 文件中没有 HTTP 或 JMS 绑定。 错误消息建议使用 /extwsdl 查询代替。使用 URL 发布 WSDL 文件需要应用程序有 Web 模块;此模块由应用程序提供或以 HTTP 路由器模块的格式提供。如果 EJB 应用程序包含仅具有 JMS 或 EJB Web Service 绑定的 WSDL 文件,那么可使用 endptEnabler 命令将 HTTP 路由器模块添加到应用程序。
关于此任务
要使用 URL 发布 WSDL 文件:
过程
示例
<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 */
如果 foo 服务的 SOAP 地址为 http://examples.com:9080/services/foo,那么检索 foo 服务的最外层 WSDL 的最简单方法是使用下列格式:http://examples.com:9090/services/foo/wsdl 或http://examples.com:9090/services/foo/wsdl/。 URL 重定向到 http://examples.com:9090/services/foo/wsdl/fooImpl.wsdl,其中 fooImpl.wsdl 是最外层 WSDL 文件的名称。
因为 fooImpl.wsdl 文件具有导入 <import namespace="http://examples.com/foo" location="a/b/foo.wsdl>,所以使用 URL http://examples.com:9090/services/foo/wsdl/a/b/foo.wsdl 获取 foo.wsdl 文件。