WSIF - 已知限制

对线程技术、对 SOAP 头和未引用的附件以及对数据类型映射使用 WSIF 包含限制时适用的已知限制。

线程技术
WSIF 不是线程安全的。
外部标准
WSIF 支持:
  • SOAP V1.1(非 1.2 或后续版本)。
  • WSDL V1.1(非 1.2 或后续版本)。
WSIF 不提供 WS-I 一致性,并且不支持“针对基于 XML 的远程过程调用的 Java™ API”(JAX-RPC) V1.1(或更高版本)。
完整的模式语法分析
WSIF 不支持完整的模式语法分析。例如,不处理模式中复杂类型的 Web 服务描述语言 (WSDL) 引用,也不处理属性。
不处理 XML 模式“redefine”元素,将其忽略。
SOAP
WSIF 不支持:
  • 作为 <parts> 传递的 SOAP 头。
  • SOAP 响应中未引用的附件,或者SOAP 附件 - 不支持的方案中详细说明的场景。
  • 文档编码样式 SOAP 消息。
    注: 这主要不是 WSIF 限制。尽管您可以在 WSDL 中指定文档编码样式,一般不考虑将它视为有效选项,且不受 Web Services 互操作性组织 (WS-I) 支持。
SOAP 提供程序互操作性
当前 WSIF 缺省 SOAP 提供程序(IBM® Web Service SOAP 提供程序)不能实现与先前的 (Apache SOAP) 提供程序上运行的服务的完全互操作。这是因为 IBM Web Service SOAP 提供程序设计为与符合 JAX-RPC 的 Web Service 进行完全互操作,而 Apache SOAP 无法提供这样的服务。有关如何克服此限制的信息,请参阅WSIF SOAP 提供程序:使用现有应用程序
WSIF 对 SOAP 故障的支持仅限于以下 SOAP 故障:源自 Web Service,并且该 Web Service 使用 IBM Web Service SOAP 提供程序。
注: 这主要不是 WSIF 限制。当前 SOAP 故障规范未指示如何对 SOAP 故障进行编码以便它映射到 Java 异常。因此,当前每个 Web Service 运行时环境选择它自己的 SOAP 故障格式。IBM Web Service SOAP 提供程序可以识别它自己的响应 SOAP 故障,但不能识别来自另一个提供程序的 SOAP 故障。
数据类型映射
当前的 WSIF 缺省 SOAP 提供程序(IBM Web Service SOAP 提供程序)符合 JAX-RPC 类型映射规则,这些规则在创建以前的 (Apache SOAP) 提供程序之后已被最终化。这两个提供程序用相同的方法映射大多数数据类型。不同之处在于:xsd:datexsd:dateTimexsd:hexBinaryxsd:QName。如果使用这四种数据类型中的任意一种,那么客户机和服务都必须使用相同的映射规则。下表详细描述这四种数据类型的映射规则表:
表 1. Apache SOAP 和 JAX-RPC 以不同方式进行映射的四种数据类型的映射规则.

第 1 列指定 XML 数据类型,第 2 列指定 Apache SOAP 的等效数据类型,第 3 列指定 JAX-RPC 的等效数据类型。

XML 数据类型 Apache SOAP Java 映射 JAX-RPC Java 映射
xsd:date java.util.Date 不受支持
xsd:dateTime 不受支持 java.util.Calendar
xsd:hexBinary 十六进制字符串 byte [ ]
xsd:QName org.apache.soap.util.xml.QName javax.xml.namespace.QName
数组和复杂类型
WSIF 不支持一般的复杂类型,它仅处理映射到 Java bean 的复杂类型。要使用模式复杂类型,您必须编写您自己的定制串行器。Web Service 的 WSIF 出站调用支持特定复杂类型和数组,具体如下:
  • WSIF 支持 WebSphere® Studio Application Developer - Integration Edition (WSAD-IE) 消息生成器生成的 Java 类(从其他地方下载 WSDL 文件时是这样)。当您使用 BPEL 编辑器,或者使用“企业服务”上下文菜单(或“业务集成”工具栏)上提供的生成操作,会自动发生基于 WSAD-IE 的生成。
  • WSIF 不支持其他工具(包含基本 WSAD 工具)生成的 Java bean。
  • 对于 WSAD-IE 生成的 Java bean,WSDL 中定义的属性不起作用。即,尽管这些属性出现在生成的 Java bean 中以表示复杂类型,但它们不出现在 WSIF 创建的 SOAP 请求中。
  • 当数组是 Java bean 的字段时,不受 WSIF 支持。即,WSIF 只支持作为指定的 <part> 传递的数组。如果数组打包在 Java bean 内,那么不会用相同方法序列化该数组。
对象序列化
WSIF 不支持不同发行版间的对象的序列化。
异步调用
WSIF 支持所有提供程序的异步调用。对于 JMS 和 SOAP over JMS 提供程序,WSIF 还支持异步调用。您应该在尝试执行异步操作之前调用 supportsAsync() 方法。
EJB 提供程序
WSIF EJB 提供程序的目标服务必须是远程 Home 接口,不可以是 EJB 本地 Home 接口。另外,在客户机类路径上必须存在 EJB 存根类。
在 WebSphere Application Server 外部运行
不支持在 WebSphere Application Server 外部使用 WSIF。

指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwsf_restrict
文件名:rwsf_restrict.html