支持总线的 Web Service:已知限制
使用支持服务集成总线的 Web Service 时,存在少量的已知限制。
通过服务集成总线传递 SOAP 头
- 在服务集成技术生成的 WSDL 中不包括 SOAP 头。
- 如果在 SOAP 消息中设置了“必须理解”标志,那么会获取错误消息。
有关支持带有附件的 SOAP 的限制
服务集成总线支持满足以下条件的 SOAP 消息:这些 SOAP 消息包含旧样式的附件(如 SOAP with attachments W3C Note 中所述)或者包含使用 Web Services-Interoperability (WS-I) Attachments Profile V1.0 的附件。如果需要将附件从一种样式变换为另一种样式,那么可以使用调解在两种附件编码样式之间进行映射。
对于 WebSphere® Application Server 主管的 Web Service,如果该服务的某个操作在其请求消息中没有附件但在其响应消息中返回了附件,那么支持总线的 Web Service 将无法调用该 Web Service。
- 使用 DIME。
- 使用 mime:mimeXml WSDL 标记。
- 在 mime:part 内嵌套 mime:multipartRelated。
- 使用 DataHandlers 的数组或向量以及图像等等。
如果通过服务集成总线传递大型附件,那么在 Java™ 虚拟机中可能会产生内存不足错误。要解决此问题,应增大 JVM 堆大小,如启用调整总线的 Web Service 中所述。
有关更多信息,请参阅通过服务集成总线来传递带有附件的 SOAP 消息。
JAAS 主体集凭证令牌不保证可用于出站服务。
- 不可序列化的内容。
- 任何实现了 com.ibm.wsspi.security.token.Token 或其任何子接口并且未将 forwardability 属性设置为 true 的令牌。
例如,如果在应用于入站端口的 WS-Security 配置和绑定中配置了定制令牌使用者,并且令牌使用者在 JAAS 主体集的私有凭证中设置了令牌,该令牌实现了 com.ibm.wsspi.security.token.Token 并将 forwardability 属性设置为 false,那么相应出站端口 WS-Security 配置和绑定中配置的任何定制令牌生成者都不应该依赖于该令牌包含在 JAAS 主体集中。
是否允许格式不良的 SOAP 消息
与 WebSphere Application Server V5.1 相比,支持总线的 Web Service 将更彻底地检查 Web Service 消息的有效性。因此,某些使用了格式不良的请求或响应(消息部件的名称不正确)的客户机应用程序能够在 V5.1 中正常运行,但在更高版本中却被识别为格式不良。
- 总线可以接受格式不良的消息。
- 总线可以生成格式不良的消息。
对先前的 WS-Security 草稿版规范的支持中存在的局限性
服务集成技术不支持先前版本 WebSphere Application Server 中的一般 Web Service 支持所支持的各个 WS-Security 草稿规范版本。服务集成技术仅支持“OASIS Web Service 安全性 V1.0 规范”、“Username 令牌 V1.0 概要文件”和“X.509 令牌 V1.0 概要文件”。有关这些受支持的规范和概要文件的更多信息,请参阅OASIS 规范中支持的功能。
使用 WS-Security 来与服务集成技术交互的所有客户机应用程序和目标服务还必须符合这些规范中受支持的级别。符合 WS-Security 草稿版规范的先前支持版本的客户机应用程序和目标服务不能与服务集成技术交互,这是因为带有 WS-Security 的 SOAP 消息的有线格式在 OASIS Web Service 安全性 V1.0 规范中已更改,并且与先前的草稿版规范不兼容。
与通过 JAX-RPC 客户机应用程序重定目标的服务所使用的 Java 类型有关的局限性
通过从 JAX-RPC 客户机直接通过总线发送 Web Service 消息将消息传递到目标处的服务集成总线时,在可以使用的 Java 类型方面存在一些局限性。
您只能对限制了类型的服务重定目标,这些类型用于已在 JAX-RPC 规范中定义了映射的那些服务的接口。这限制了对于在 WSDL 文档中可以使用的部分 XML 模式的支持。例如,如果接口具有映射至 SOAPElement 的任何元素,就不能通过总线对它重定目标。
配置出站服务以使用 WSDL 端口
- 如果您传递类型为 Address 的对象,那么该类以及在 Address 对象内序列化的所有对象的类都必须显示在 WebSphere Application Server 类路径上。
- 如果企业 Bean 上的方法的特征符包含 java.util.List 对象并且期望该列表是 Address 对象的列表,那么 Address 类必须在 WebSphere Application Server 类路径中。