本主题仅适用于 IBM Business Process Manager Advanced 配置。

SCA 至 Java 网桥

不能直接将带有 Web Service 定义语言 (WSDL) 类型的引用的组件连线至另一具有 Java™ 接口的组件,但有一个实用程序可帮助您创建网桥组件以使 WSDL 连接至 Java。组件已生成,所以不必编写转换代码。

流经 IBM® Business Process Manager 的数据建模为 XML 模式,并由服务器作为服务数据对象或业务对象处理。如服务数据对象 V2 规范中所述,服务数据对象是实现数据对象接口的业务数据的运行时表示。

建模为 XML 并且运行时表示是数据对象的类型被称为 WSDL 类型,其中,输入、输出和故障描述为 XML 模式。现有 Java 和 Java 2 Platform Enterprise Edition 应用程序将数据作为 Java 类型进行处理。Java 类型包括 Java 基本类型、由 J2SE API 定义的类以及用户定义的 Java 类。

在集成环境中,处理 WSDL 类型的组件有时需要调用希望数据为 Java 类型的现有 Java 应用程序。例如,需要调用会话 EJB 的服务组件体系结构 (SCA) 组件。此调用需要在 WSDL 类型与 Java 类型之间进行转换。此转换由 SCA 对 to Java 网桥组件完成。

可为以下 Java 元素生成网桥组件:
系统生成 SCA Java 组件,此组件具有作为其引用的目标 Java 接口以及与刚生成的 WSDL 端口类型相匹配的接口。此组件采用 WSDL 类型作为参数,将它们转换为 Java 类型,并代理对目标 Java 接口的调用。所有返回结果或异常会转换为 WSDL 类型并返回给调用者。此实用程序根据所导入 Java 接口或类生成代码,并且所生成文件的名称的一部分取自此接口。此实用程序生成以下文件:

可在 IBM Integration Designer 组合件编辑器中生成这些文件并将它们连线(请参阅“通过 WSDL 引用来调用 Java 接口”,此章节可通过下面的相关链接访问),也可通过 IBM Process Server 使用 genMapper 命令来生成这些文件。如果通过 genMapper 命令生成这些文件,请将这些文件导入到 IBM Integration Designer 类的模块中。然后,可使用组合件编辑器将 WSDL 引用与 Java 接口连线至所生成组件。

系统对可拖到组合件编辑器画布上以生成网桥组件的 Java 类或接口有一些限制:

接口由一个或多个操作组成,这些操作又包含参数。使用 SCA 至 Java 网桥组件时,只能通过值传递参数。系统使用 Java 类名作为所生成数据对象的类型名。需要通过用户定义接口形式的目标 Java 接口的操作传递参数时,必须覆盖此代码并提供系统可实例化的具体类。如果运行时环境找不到要创建具体类的类型,那么系统会生成运行时异常。

对于某些 java.util 容器类,映射器会生成基于 xsd:anyType 的复杂类型以作为 WSDL 类型。这些容器类包括 arrays、SortedMap、AbstractMap、BitSet、Dictionary、IdentityHashMap、LinkedHashMap 和 TreeMap(请参阅“Java 至 XML 转换”以了解更多详细信息)。在某些怦下,您可能需要通过编写定制转换代码来覆盖所生成代码。

请根据文件中的所注释指示信息来编辑所生成代码,但不要更改文件名。有关提供有关编辑该代码的主题的链接,请参阅下面的相关任务。

注: 如果 Java 接口在完成映射后发生更改,那么可通过对映射组件运行重新生成实现来更新映射器实现。这会使 WSDL 接口与所更新 Java 接口的 WSDL 接口相匹配,同时更新映射器的 Java 实现中的映射代码。