1

我正在 BPEL(比如 findRules)中创建一个流程,该流程具有三个 Java 嵌入式活动(A、B、C)。我有一个 Java 类(Rule.java),我需要在所有 Java 嵌入活动中导入它。

当我创建 Rule.java A 活动的实例时,我可以在 B 和 C 活动中使用相同的实例吗?因为我在 A 中执行一些业务逻辑并想访问 B 和 C 中的更新变量。但是因为 B 和 C 有新实例,所以我无法找到那些更新的变量。

4

2 回答 2

1

如果您是 Oracle SOA 套件,那么有一种方法可以做到这一点,尽管是一种非常肮脏的方法。旧的 WLI 标记仍然可用。请注意,这将删除您的代码的可移植性。

<jpd:javacode xmlns:jpd="http://www.bea.com/wli/jpd" >
public void f() {
    LOGGER.log("Some log statement");
}
</jpd:javacode>

然后,您可以使用这个 Java 方法f(),并且与 wli 中的方法相同(使用jpd:nodejpd:methodName标记)

于 2011-04-19T13:30:57.190 回答
0

Java 嵌入式活动不是 BPEL 标准的一部分,因此在不知道您使用哪种 BPEL 工具的情况下,不可能给出适当的答案。但是,从设计的角度来看,我猜想中间件供应商会更好地隔离此类活动。BPEL 流程通常意味着以长期运行的方式执行,并且能够在硬件和软件崩溃中幸存下来。使 java 对象对某些活动可见将 IMO 打破这些概念。

于 2011-04-16T08:03:39.650 回答