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 具有新实例,所以我无法找到这些更新的变量。
I am creating a process in BPEL (say findRules) which has three Java Embeded Activity(A,B,C). and I have one java class(Rule.java) which I need to import on all Java Embed Activity.
and when I create an instance of Rule.java A activity, can I use the same instance in B and C activity.
because I am performing some business logic in A and wanted to access the updated varibles in B and C. but because B and C are having new instance I am not able to find those updated variables.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用的是 Oracle SOA 套件,那么有一种方法可以做到这一点,尽管这是一种非常肮脏的方法。旧的 WLI 标签仍然可用。 请注意,这将消除代码的可移植性。
<代码>
然后,您可以使用此 Java 方法
f()
,与 wli 中的方式相同(使用jpd:node
和jpd:methodName
标记)If you are Oracle SOA suite, there is a way to do this, albeit a very dirty one. The old WLI tags are still available. Note that this will remove portability of your code.
Then, you could use this Java method
f()
, and the same way as in wli (Usingjpd:node
andjpd:methodName
tags)Java 嵌入式活动不是 BPEL 标准的一部分,因此如果不知道您使用哪种 BPEL 工具,就不可能给出适当的答案。然而,从设计的角度来看,我猜测中间件供应商会更好地隔离此类活动。 BPEL 流程通常旨在以长时间运行的方式执行,并且能够在硬件和软件崩溃时幸存下来。在我看来,使 java 对象对某些活动可见会打破这些概念。
Java Embedded Activities are not part of the BPEL standard, so without knowing which BPEL tooling you use it is impossible to give an appropriate answer. However, from a design point of view, I would guess that a middleware vendor would better isolate such activities. BPEL processes are typically meant to be executed in a long-running fashion and are able to survive hardware and software crashes. Making java objects visible to certain activities would IMO break these concepts.