通过 HTTP/S 发送 SOAP 文档

SOAP 文档不同于通过 HTTP/S 交换的其它类型文档。前者使用标准的 Adapter for Web Service, 该适配器调用 SOAP 数据处理程序来将 SOAP 消息转换成业务对象,以及将业务对象转换成 SOAP 消息。本部分描述了如何通过 HTTP 传输协议在 WebSphere Partner Gateway 和 WebSphere InterChange Server 之间收发文档。

注: 要在 WebSphere Partner Gateway 和 WebSphere InterChange Server 之间通过 HTTP 传输协议收发非 SOAP 文档,请参阅将 HTTP 传输协议用于 ICS

请参阅 Adapter for Web Service 文档,以获取有关业务对象结构和 WSDL 对象发现代理(ODA)的信息,ODA 是一种设计时工具,您可以用它来生成包括有关目标 Web Service 信息的 SOAP 业务对象。

中心配置指南所述,您必须设置了一个目标来接收来自后端系统的 Web Service 调用(Web Service 目标),还需设置一个目标来接收来自社区参与者的 Web Service 调用(外部 Web Service 目标)。

发送和接收所需的组件

要使用 HTTP 传输协议将 SOAP 文档从 WebSphere Partner Gateway 发送到 InterChange Server,请使用表 50. 中列出的组件

表 50. 通过 HTTP 将 SOAP 文档发送到 InterChange Server 所需的组件
组件 描述 注意事项和限制
WebSphere Business Integration Adapter for Web Services

这个适配器允许 InterChange Server 与以 HTTP 消息形式发送或接收数据的应用程序交换业务对象。

  1. 该适配器不能用于非 SOAP 文档。
  2. 请确保您使用 Adapter for Web Service 3.4.0(或更高版本)。请参阅 Adapter for Web Service 用户指南以确保适配器的级别跟您正在使用的 WebSphere InterChange Server 的版本是兼容的。

注: 如果 SOAP 文档包含附件,则您不必使用附件数据处理程序来处理它们。

社区参与者如何调用 Web service

当社区参与者发送协作请求,该协作是作为社区管理者提供的 Web Service 公开的,会发生下列步骤:

  1. 社区参与者将 SOAP 请求消息发送到 WSDL 文档(为协作生成的)中指定的目的地。 注:WSDL 中指定的端点是 WebSphere Partner Gateway 的 Web Service 目标(URL),而不是实际的端点。
  2. WebSphere Partner Gateway 接收消息并将其路由到 Adapter for Web Service。
  3. Adapter for Web Service 将 SOAP 消息发送到 SOAP 数据处理程序,以将 SOAP 消息转换成业务对象。适配器调用作为 Web Service 公开的协作。
  4. 如果这是请求/响应操作,则协作返回 SOAP 响应(或故障)业务对象。
  5. 如果协作返回了 SOAP 响应(或故障)业务对象,则 Adapter for Web Service 调用 SOAP 数据处理程序来将 SOAP 响应(或故障)业务对象转换成 SOAP 响应消息。 适配器将响应返回给 WebSphere Partner Gateway。 如果协作未返回 SOAP 响应(或故障)业务对象,则 Adapter for Web Service 返回相应的 HTTP 响应状态码。
  6. WebSphere Partner Gateway 将响应路由至 Web Service。

社区管理者如何调用 Web service

由 WebSphere Partner Gateway 提供的公共 WSDL 可用于创建使用 WSDL ODA 的业务对象。请注意,当社区参与者提供的 Web Service 供社区管理者使用时,社区管理者用来调用 Web Service 的公共 URL 应该包含下列查询字符串,这一点很重要:

?to=<Community participant Web Service Provider's business ID>

例如,下列地址告诉 WebSphere Partner Gateway,Web Service 的提供者是企业标识为 123456789 的参与者:

http://<Hub_IP_address>/bcgreceiver/Receiver?to=123456789

WSDL ODA 将不会在 Web Service 顶级业务对象的 URL 属性缺省值中添加查询字符串。

当协作发送请求(到 Adapter for Web Service)以调用社区参与者的 Web service 时,将发生以下步骤:

  1. 协作向适配器发送服务调用请求,这会调用 SOAP 数据处理程序来将业务对象转换成 SOAP 请求消息。
  2. 适配器通过将 SOAP 消息发送到 WebSphere Partner Gateway 上的外部 Web Service 目标(URL),来调用 Web Service。
  3. WebSphere Partner Gateway 充当代理,将 SOAP 消息发送到对应于目的地(社区参与者) Web service 的端点。这会调用 Web Service。
  4. 被调用的 Web Service 接收 SOAP 请求消息,并执行所请求的处理。
  5. 被调用的 Web Service 发送 SOAP 响应(或故障)消息。 如果是单向操作,则返回相应的 HTTP 状态码。
  6. 如果这是请求/响应 Web Service,则 WebSphere Partner Gateway 将 SOAP 响应(或故障)消息路由至适配器,适配器调用数据处理程序来将其转换成响应或故障业务对象。 连接器将 SOAP 响应或故障业务对象返回给协作。

Copyright IBM Corp. 2003, 2005