我在BPEL中创建了一个进程(比如findRules),它有三个Java Embeded Activity(A,B,C)。我有一个java类(Rule.java),我需要在所有Java Embed Activity上导入它。
当我创建Rule.java A活动的实例时,我可以在B和C活动中使用相同的实例。 因为我在A中执行一些业务逻辑并希望访问B和C中更新的变量,但由于B和C有新实例,我无法找到这些更新的变量。
答案 0 :(得分: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:node
和jpd:methodName
标记)
答案 1 :(得分:0)
Java嵌入式活动不是BPEL标准的一部分,因此如果不知道您使用哪种BPEL工具,就无法给出适当的答案。但是,从设计的角度来看,我猜想中间件供应商会更好地隔离这些活动。 BPEL流程通常意味着以长期运行的方式执行,并且能够承受硬件和软件崩溃。让java对象对某些活动可见,IMO会破坏这些概念。