调用 Java 服务
要调用 Java™ 服务,可以发现 Java 类并生成外部服务。 然后,可在服务流中使用外部服务来调用 Java 服务。
准备工作
在创建外部服务之前,请添加包含所需类的 JAR 文件,如 添加受管文件中所述。 有关已上载 JAR 文件的作用域的信息,请参阅 管理外部文件。
如果您需要的 JAR 文件包含在 Toolkit 中,那么可以添加对该 Toolkit 的依赖关系以访问这些文件。 请参阅 管理 Toolkit 依赖关系。
要点: 外部服务 Java 集成的事务行为不保证,因此未定义。
关于本任务
要在设计器中使用 Java 服务,请先发现 Java 类,然后从中生成外部服务。 外部服务包含操作及其输入和输出,它们均基于已发现的 Java 类中的方法。 发现服务时,如果设计器中已存在相应的外部服务,那么可以覆盖现有服务或创建新的服务。
完成以下步骤以发现 Java 类并生成外部服务。
- 通过以下方法之一创建外部服务:
- 在库导航中的服务旁边,单击加号 (+)。选择外部服务。 在“新建外部服务”页面中,选择 Java、REST 或 Web Service。
- 在 " 服务流 " 编辑器中,选择 服务 任务。 在服务的 实施 选项卡中,单击 新建。 在“新建外部服务”页面中,选择发现现有服务。
- 选择服务器文件中的 Java 服务作为用于发现服务的方法。
- 在 受管文件旁边,单击 选择 ,然后选择所需的文件。
- 在 Java 类旁边,从下拉列表中选择需要的类。 单击完成。
- 使用 Java 绑定创建外部服务。 操作及其输入和输出基于发现的 Java 类中的方法。 在详细信息部分中,将显示服务名称。 您还可以添加文档。 将显示发现的名称空间。 选择 绑定 将显示 Java 绑定类型。 单击参数,并选择绑定以查看该参数的本机类型。注: 能否从服务流成功调用操作取决于类,方法,参数类型和方法的结果类型的链接:
- Java 类必须为 "public"。
- 方法必须为 "public"。
- 方法必须是 "静态" ,或者 Java 类必须具有公用无参数构造函数。
- 每个参数类型以及结果类型 (如果不是 "void") 必须是下列其中一项:
Java 类型 操作参数类型 byte, ByteIntegershort, ShortIntegerint, IntegerIntegerlong, LongDecimalfloat, FloatDecimaldouble, DoubleDecimalboolean, BooleanBooleanchar, CharacterStringStringStringjava.util.CalendarDateorg.jdom.ElementXMLElementorg.jdom.DocumentXMLDocumentjava.util.MapMap
提示: 由于在符合要求的类中检查的 Java 方法特征符不包含有关参数名称的信息,因此将为其生成通用名称和数字,例如,参数 1 (字符串) ,参数 2 (整数)。 因此可添加 BeanInfo 类,以提供有关这些类及其方法的其他信息。
结果
创建外部服务后,可以将其选择为服务流中服务的实现。 从“操作”下拉列表中选择要使用的操作,并在数据映射选项卡中映射输入和输出。 请参阅 创建服务流。
如果操作的参数类型为 Map, XMLElement或 XMLDocument,请使用 JavaScript API 来构造参数或分解返回值。 有关更多信息,请参阅流程和服务流中的 JavaScript API。