第九章 创建 Web Services - 查看 WSDL
查看 WSDL
当使用 %SOAP.WebService
定义 Web
服务时,系统将创建并发布描述此 Web
服务的 WSDL
文档。每当修改并重新编译Web
服务时,系统都会自动相应地更新WSDL
。本节讨论以下内容:
- 查看
WSDL
以及发布WSDL
的URL
- 可用于将
WSDL
生成为静态文档的方法
重要提示:根据定义,Web
服务及其 Web
客户端需要遵守通用接口,无论其各自的实现如何(并且无论技术有任何潜在的变化)。 WSDL
是该接口的符合标准的描述。重要的是要注意以下几点:
- 实际上,单个
SOAP
接口通常可以由多个略有不同的WSDL
文档正确描述。
因此,生成的 WSDL
的形式可能略有不同,具体取决 的版本。描述任何此类差异超出了本文档的范围。 只能按照 W3C
规范的要求致力于 Web
服务及其各自客户端的互操作性。
-
W3C
规范不要求Web
服务或Web
客户端能够生成WSDL
来描述其所遵循的接口。
为方便起见,系统生成 WSDL
文档并在特定 URL
上提供该文档。但是,如果包含的 Web
应用程序需要密码身份验证或需要 SSL
连接,您可能会发现以这种方式访问WSDL
是不切实际的。在这种情况下,应该将 WSDL
下载到文件中并使用该文件。此外,如前所述,生成的 WSDL
不包含有关运行时添加的 SOAP
标头的任何信息。如果需要 WSDL
文档来包含有关在运行时添加的 SOAP
标头的信息,则应将 WSDL
下载到文件中,根据需要修改该文件,然后使用该文件。
查看 WSDL
URL 具有以下形式,使用您的实例的<baseURL>:
https://<baseURL>/csp/app/web_serv.cls?WSDL
这里/csp/app
是Web
服务所在的Web
应用程序的名称,web_serv
是Web``服务的类名。 (通常,
/csp/app是
/csp/namespace`。)
注意:类名中的任何百分号字符 (%
) 都将替换为此 URL
中的下划线字符 (_
)。
例如:
https://devsys:52773/csp/mysamples/MyApp.StockService.cls?WSDL
浏览器显示WSDL
文档,例如:
重要提示:并非所有浏览器都能正确显示架构。可能需要查看页面源代码才能看到实际的架构。例如,在 Firefox
中,单击鼠标右键,然后选择“查看源代码”。
生成 WSDL
还可以将 WSDL
生成为静态文档。类中的 %SOAP.WebService
提供了一个可用于此目的的方法:
FileWSDL()
ClassMethod FileWSDL(fileName As %String, includeInternalMethods As %Boolean = 1) As %Status
其中 fileName
是文件的名称,includeInternalMethods
指定生成的 WSDL
是否包含任何标记为 Internal
的 Web
方法。
禁止 WSDL
中的内部 Web
方法
如果 Web
服务具有标记为“内部”的 Web
方法,则默认情况下 WSDL
会包含这些 Web
方法。可以阻止这些方法包含在 WSDL
中。为此,请执行以下任一操作:
- 使用
Web
服务的FileWSDL()
方法生成WSDL
;请参阅上一节。此方法提供一个参数来控制WSDL
是否包含内部Web
方法。 - 在
Web
服务类中将SOAPINTERNALWSDL
类参数指定为0
。 (此类参数的默认值为1
。)