BPEL共享实例中的Java Embed Activity

问题描述

| 我正在BPEL中创建一个流程(例如findRules),该流程具有三个Java嵌入式活动(A,B,C)。我有一个Java类(Rule.java),需要在所有Java Embed Activity上导入。 当我创建Rule.java A活动的实例时,是否可以在B和C活动中使用相同的实例。 因为我正在A中执行一些业务逻辑,并且想访问B和C中的更新变量,但是因为B和C具有新实例,所以无法找到这些更新变量。     

解决方法

如果您是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
标签)     ,Java嵌入式活动不是BPEL标准的一部分,因此,如果不知道使用哪种BPEL工具,就不可能给出适当的答案。但是,从设计的角度来看,我猜测中间件供应商会更好地隔离此类活动。 BPEL流程通常旨在以长期运行的方式执行,并且能够承受硬件和软件崩溃。使Java对象对于某些活动可见,IMO将破坏这些概念。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...