createWSGWProxyService 命令
使用 createWSGWProxyService 命令设置网关以使其充当服务代理,并使用 JAX-RPC 处理程序来设置服务的入局请求消息的端点。
可按本主题中所述使用 wsadmin 工具创建新的代理服务配置,或按创建新的代理服务配置中所述使用管理控制台进行创建。
要运行该命令,请使用 wsadmin 脚本编制客户机的 AdminTask 对象。
wsadmin
脚本编制客户机通过 Qshell 运行.
有关更多信息,请参阅 使用 wsadmin 脚本编制配置 Qshell 以运行 WebSphere 脚本.
- 要获取可用的网关命令列表以及每个命令的简要描述,请在 wsadmin 提示符处输入以下命令:
print AdminTask.help('WSGateway')
- 要获取有关给定命令的总体帮助,请在 wsadmin 提示符处输入以下命令:
print AdminTask.help('command_name')
AdminConfig.save()
用途
该命令创建新的 ProxyService 对象和关联的 InboundService 对象以及 TargetService 对象和关联的 OutboundService 对象。
然后您可使用支持服务集成总线的 Web Service 命令来添加任何 InboundPort 对象,这些对象与 InboundService 对象关联。有关更多信息,请参阅本主题末尾的有效示例。
目标对象
创建代理服务的网关实例的 ObjectName。
此命令创建代理请求目标及相应的应答目标。配置代理请求目标以更新应答路径来添加代理应答目标。如果带有指定名称或缺省名称的目标已存在,那么该命令失败。
如果同名的网关服务或代理服务已存在,那么该命令失败。
如果指定代理请求目标的名称,那么使用该名称创建代理服务目标和端口目标。否则,使用源自代理服务名称的名称创建代理服务目标和端口目标。通过将“ProxyService”添加至代理请求目标或代理服务名称来创建代理服务目标名称。在代理服务目标之后指定每个代理端口目标,后跟冒号 (":"),然后是端口名,最后是 "Port"。如果带有任何这些名称的目标已存在,那么该命令失败。
指定节点和服务器,或者指定集群。如果不存在为指定节点以及服务器或集群定义的消息传递引擎,那么该命令将失败。
该命令创建与代理服务同名的 OutboundService 对象。该新的出站服务使用已创建的目标、已提供的位置以及网关实例的缺省代理 WSDL 位置或(如果指定的话)代理 WSDL 文件的位置。新的出站服务与 ProxyService 对象关联。
代理 WSDL 必须只有一个服务元素。如果在单个服务元素内存在多个端口,那么为每个端口创建出站端口对象。
代理 WSDL 从不应该来自 UDDI,所以,对于缺省代理 WSDL 位置和被覆盖的代理 WSDL 位置,仅支持 Web 地址。
该命令使用代理目标创建与代理服务同名的 InboundService 对象,并将缺省或指定的代理 WSDL 位置用作模板 WSDL 位置。
必需参数
- -name
- 代理服务名称。
条件参数
- -node
- 目标所在的节点。
- -server
- 目标所在的服务器。
- -cluster
- 目标所在的集群。
可选参数
- -requestDestination
- 代理请求目标的名称。
- -replyDestination
- 代理应答目标的名称。
- -wsdlLocation
- 代理 WSDL 文件的位置。这是 Web 地址。
示例
- 创建代理服务,其中,wsgw 是网关实例:
- 使用 Jython:
proxyService = AdminTask.createWSGWProxyService(wsgw, ["-name", "MyProxyService", "-node", "MyNode", "-server", "server1"])
- 使用 Jacl:
set proxyService [$AdminTask createWSGWProxyService $wsgw {-name "ProxyService" -node "MyNode" -server "server1"}]
- 使用 Jython:
- 获取网关服务的入站服务,其中,busName 是服务集成总线的名称:
- 使用 Jython:
inServiceName = AdminConfig.showAttribute(proxyService, "inboundServiceName")
inService = AdminConfig.getid("/ SIBus:"+busName+"/SIBWSInboundService:"+inServiceName+"/")
- 使用 Jacl:
set inServiceName [$AdminConfig showAttribute $proxyService "inboundServiceName"]
set inService [$AdminConfig getid /SIBus:$busName/SIBWSInboundService:$inServiceName/]
- 使用 Jython:
- 添加 SOAP over HTTP 端口,其中,已配置 SOAP over HTTP 1 端点侦听器:
- 使用 Jython:
inPort = AdminTask.addSIBWSInboundPort(inPort, ["-name", "SOAPHTTPPort", "-endpointListener", "soaphttp1", "-node", "MyNode", "-server", "server1"])
- 使用 Jacl:
set inPort [$AdminTask addSIBWSInboundPort $inPort {-name "SOAPHTTPPort" -endpointListener "soaphttp1" -node "MyNode" -server "server1"}]
- 使用 Jython:
- 完成入站服务和出站服务以及端口的配置。例如,应用 JAX-RPC处理程序或 WS-Security。
- 对于 HTTP 操作,如果代理服务的 Web 地址为
则发出请求的客户机指示他们正在使用以下 URL 来发送单向请求:http://host_name:port_number/wsgwsoaphttp1/soaphttpengine /your_bus/ProxyService/ProxyServiceInboundPort
http://host_name:port_number/wsgwsoaphttp1/soaphttpengine /your_bus/ProxyService/ProxyServiceInboundPort?operationMode=oneway
- 对于 JMS 操作,如果代理服务的 JMS 地址为
则发出请求的客户机指示他们正在使用以下 URL 来发送单向请求:jms:/queue?destination=jndi_queue&connectionFactory= jndi_factory&targetService=your_bus/ProxyService/ProxyServiceInboundPort
jms:/queue?destination=jndi_queue&connectionFactory= jndi_factory&targetService= your_bus/ProxyService/ProxyServiceInboundPort&operationMode=oneway