如何解决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将破坏这些概念。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。