使用 wsadmin 脚本编制来查询 Web Service
可以使用 wsadmin 工具通过 Jython 或 Jacl 脚本语言来查询 Web Service 属性。使用 WebServicesAdmin 组中的命令来列出所有 Web Service、服务引用和属性,查找特定 Web Service 的属性,确定 Web Service 端点以及确定 Web Service 的操作名称。
开始之前
wsadmin 管理脚本编制程序支持两种脚本语言:Jacl 和 Jython。不推荐使用 Jacl 语法。随附仅使用 Jython 脚本语言编写的示例。
必须启动 wsadmin 工具,才能在 WebServicesAdmin 组中完成执行命令的过程。
关于此任务
使用以下命令来查询 Web Service 和 Web Service 属性。如果接收到 NoItemFoundException 错误,就表示找不到指定的应用程序、模块、服务或端点。验证所有参数是否都正确。
可以根据情况对 WebServicesAdmin 命令组中的任何命令指定 client 参数。client 参数指示是否返回服务提供者或服务客户机。指定 false 以请求服务提供者,指定 true 以请求服务客户机。
过程
- 查询所有企业应用程序的所有已安装 Web Service 的配置。 输入以下命令。不必对此命令指定 application 参数。
此命令返回所有已安装的 Web Service。此命令还返回每个 Web Service 的应用程序名称、模块名称、服务名称和服务类型。AdminTask.listWebServices()
样本输出:'[ [service {http://www.ibm.com}service1] [client false] [application application1] [module webapp1.war] [type JAX-WS] ]'
- 查询特定企业应用程序的所有已安装 Web Service 的配置。 输入以下命令并指定要查询的应用程序的名称:
此命令返回您指定的 application_name 的所有已安装 Web Service。此命令还返回每个 Web Service 的应用程序名称、模块名称、服务名称和服务类型。AdminTask.listWebServices('[–application application_name -client false]')
样本输出:'[ [service {http://www.ibm.com}service1] [client false] [application application1] [module webapp1.war] [type JAX-WS] ]'
- 查询企业应用程序的 Web Service 名称和类型的配置。 输入以下命令并指定应用程序名称、模块名称和 Web Service 名称。client 参数是可选的。
此命令返回 Web Service 名称和 Web Service 类型。AdminTask.getWebService('[–application application_name -module module_name -service webservice_name -client false]')
样本输出:'[ [service {http://www.ibm.com}service1] [client false] [type JAX-WS] ]'
- 查询企业应用程序的 Web Service 端点的配置。 逻辑端点名称是 Web 服务描述语言 (WSDL) 文档中的端口名称。输入以下命令并指定应用程序名称、模块名称和 Web Service 名称。client 参数是可选的。
此命令返回安装了 Web Service 的端口。AdminTask.listWebServiceEndpoints('[–application application_name -module module_name -service webservice_name -client false]')
样本输出:'[logicalEndpoint QuotePort01]'
- 查询企业应用程序的 Web Service 操作名称的配置。 输入以下命令并指定应用程序名称、模块名称、Web Service 名称和端点名称。逻辑端点名称是 Web 服务描述语言 (WSDL) 文档中的端口名称。client 参数是可选的。
此命令返回所有 Web Service 操作。AdminTask.listWebServiceOperations('[-application application_name -module module_name -service webservice_name -logicalEndpoint endpoint_name -client false]')
样本输出:'[operation ivt_app_op1] [operation ivt_app_op2]'
- 查询每个已部署资产的服务提供者、端点和操作的配置。
listServices 命令提供通用查询功能。使用以下命令来显示关于企业应用程序和 Web Service 通知 (WSN) 客户机的服务提供者、端点和操作的信息。每个参数都是可选参数。如果不指定 queryProps 参数,那么该命令将返回配置中的每个服务提供者。如果未指定 expandResources 参数,那么此命令将不返回每个服务的逻辑端点或操作。
以下命令示例将返回 myApplication 应用程序的每个服务提供者和相应端点:AdminTask.listServices('-queryProps "[[CompositionUnit=myApplication][client=false]" -expandResources endpoint']
以下命令示例将返回单元内的每个 JAX-WS 服务提供者和相应端点及操作:
此命令将返回与搜索查询相匹配的服务提供者。AdminTask.listServices('[-queryProps "[[serviceType JAX-WS][client false]]"]')
样本输出:'[ [service {http://www.ibm.com}EchoService] [assetType [J2EE Application]] [client false] [application WSSampleServicesSei] [module SampleServicesSei.war] [serviceType JAX-WS] ] [ [service {http://www.ibm.com}EchoService12] [assetType [J2EE Application]] [client false] [application WSSampleServicesSei] [module SampleServicesSei.war] [serviceType JAX-WS] ] [service {http://www.ibm.com}PingService] [assetType [J2EE Application]] [client false] [application WSSampleServicesSei] [module SampleServicesSei.war] [serviceType JAX-WS] ] [ [service {http://www.ibm.com}PingService12] [assetType [J2EE Application]] [client false] [application WSSampleServicesSei] [module SampleServicesSei.war] [serviceType JAX-WS]]'
使用 listServices 命令来了解服务引用。可以在 listServices 命令中将 serviceRef 属性与 queryProps 参数一起使用,以查询所有服务引用或特定服务引用。此参数仅适用于服务客户机。如果将星号 (*) 指定为通配符来代表服务引用名称,那么将返回匹配服务客户机的所有服务引用。您也可以通过指定所需服务引用的名称来查询特定服务引用。要返回端点和操作的详细服务引用信息,请指定 expandResource 属性。
以下命令示例会列出单元中的所有服务客户机和服务引用:
此命令返回与搜索查询相匹配的服务引用。AdminTask.listServices('[-queryProps [[client true] [serviceRef *]]]')
在下列样本输出中,列出了 EchoService 和 Echoservice12 服务客户机,并且这些客户机在单元中没有服务引用。但是,TestService 和 TestService2 服务客户机的确具有服务引用。服务客户机中的每个服务引用具有一个属性对象。该组件名称仅适用于 EJB 模块。'[ [service {http://www.ibm.com}EchoService] [assetType [J2EE Application]] [client true] [application JaxWSServicesSamples] [module SampleClientSei.war] [serviceType JAX-WS] ] [ [service {http://www.ibm.com}EchoService12] [assetType [J2EE Application]] [client true] [application JaxWSServicesSamples] [module SampleClientSei.war] [serviceType JAX-WS] ] [ [service {http://www.ibm.com}TestService] [assetType [J2EE Application]] [client true] [application JaxWSServicesSamples] [module SampleClientSei.war] [serviceType JAX-WS] ] [ [serviceRef testRef] [assetType [J2EE Application]] [service {http://www.ibm.com}TestService] [client true] [application JaxWSServicesSamples] [module SampleClientSei.war] [serviceType JAX-WS] ] [ [service {http://www.ibm.com}TestService2] [assetType [J2EE Application]] [client true] [application JaxWSServicesSamples] [module SampleClientSei.war] [serviceType JAX-WS] ] [ [serviceRef testRef2] [assetType [J2EE Application]] [service {http://www.ibm.com}TestService2] [client true] [application JaxWSServicesSamples] [module SampleClientSei.war] [serviceType JAX-WS] ]
以下命令示例会通过展开端点和操作来列出特定服务引用:
此命令返回对 testRef 指定的服务引用,并且将 serviceRef 属性包括在每个属性对象中;例如:AdminTask.listServices('[-queryProps [[client true] [application JaxWSServicesSamples] [module SampleClientSei.war] [serviceRef testRef] -expandResource logicalEndpoint]')
'[ [serviceRef testRef] [service {http://www.ibm.com}TestService] [assetType [J2EE Application]] [client true] [application JaxWSServicesSamples] [module SampleClientSei.war] [serviceType JAX-WS] ] [ [serviceRef testRef] [module SampleClientSei.war] [serviceType JAX-WS] [client true] [service {http://www.ibm.com}TestService] [assetType [J2EE Application]] [logicalEndpoint portA] [application JaxWSServicesSamples] ] [ [serviceRef testRef] [module SampleClientSei.war] [serviceType JAX-WS] [client true] [service {http://www.ibm.com}TestService] [assetType [J2EE Application]] [logicalEndpoint portB] [application JaxWSServicesSamples] ]'
以下命令示例将返回单元内的每个 WSN 服务客户机和相应端点及操作:
此命令将返回与搜索查询相匹配的服务提供者。AdminTask.listServices('[-queryProps "[[serviceType [JAX-WS (WSN)]][clie nt true]]" -expandResource logicalEndpoint]')
样本输出:'[ [service {http://www.ibm.com/websphere/wsn/out/remote-publisher}OutboundRemotePublisherService] [assetType [WSN Service]] [client true] [bus bus1] [WSNService wsn1] [serviceType [JAX-WS (WSN)]] ] [ [assetType [WSN Service]] [service {http://www.ibm.com/websphere/wsn/out/remote-publisher}OutboundRemotePublisherService] [bus bus1] [client true] [WSNService wsn1] [serviceType [JAX-WS (WSN)]] [logicalEndpoint OutboundRemotePublisherPort] ] [ [service {http://www.ibm.com/websphere/wsn/out/notification}OutboundNotificationService] [assetType [WSN Service]] [client true] [bus bus1] [WSNService wsn1] [serviceType [JAX-WS (WSN)]] ] [ [assetType [WSN Service]] [service {http://www.ibm.com/websphere/wsn/out/notification}OutboundNotificationService] [bus bus1] [client true] [WSNService wsn1] [serviceType [JAX-WS (WSN)]] [logicalEndpoint OutboundNotificationPort] ]'
子主题
AdminTask 对象的 WebServicesAdmin 命令组
要通过 wsadmin 工具配置安全性,可以使用 Jython 或 Jacl 脚本语言来实现。使用 WebServicesAdmin 组中的命令来列出所有 Web Service、服务引用和属性,查找特定 Web Service 的属性,确定 Web Service 端点以及确定 Web Service 的操作名称。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_wsfpmanagews
文件名:txml_wsfpmanagews.html