Oracle:BPEL->Java Callout->BPEL:如何使它们属于EM中的同一个调用树?

Posted

技术标签:

【中文标题】Oracle:BPEL->Java Callout->BPEL:如何使它们属于EM中的同一个调用树?【英文标题】:Oracle: BPEL->Java Callout->BPEL: how to make them belong to the same call tree in EM? 【发布时间】:2011-09-13 22:20:54 【问题描述】:

BPEL 流程包含一个 Java 调出,用于执行在 BPEL 中不切实际的逻辑。

该 Java 调用又调用另一个 BPEL 工作流(使用 DII WS 调用)。

BPEL1 -> (Java Embedding) -> Java code -> (SOAP call) -> BPEL2

一切正常,除了一个烦人的细节:在企业管理器中查看调用堆栈时,这两个 BPEL 流程没有链接(即没有显示为一棵树)。这会导致故障排除时出现一些延迟和混乱。

当使用常规调用步骤调用同一个子 BPEL 时,流程是链接的。

问题是:BPEL如何将父信息传递给子流程?我认为这是一些 HTTP 或 SOAP 标头,我将很快进行调查。我希望之前有人遇到过这个挑战,并且会概述我所有必要的步骤。 :-)

【问题讨论】:

【参考方案1】:

根据我的经验,在 BPEL 中使用 java 嵌入(使用 IBM 或 Oracle BPEL 引擎)不适合复杂的使用。

我宁愿尝试在 BPEL 调用的 java SCA 组件中执行我的复杂逻辑。

SCA 组件 java 实现被命名为“spring 组件”。

您可以进行以下流程:

BPEL1 -> Java spring component -> BPEL2

电线可以是直接的,也可以是通过肥皂的。

EM 实例树是使用 Instance 唯一 ID 生成的,当您从 Java 代码进行 soap 调用时,您无法传播此 ID。

此 ID 传输由 SCA 引擎管理

【讨论】:

以上是关于Oracle:BPEL->Java Callout->BPEL:如何使它们属于EM中的同一个调用树?的主要内容,如果未能解决你的问题,请参考以下文章

BPEL 实例教程

java.sql.SQLException: Io 异常: Got minus one from a read call

Oracle中执行存储过程call和exec区别

使用BPEL创建Web服务组合

Oracle 中 call 和 exec的区别

BPEL 模块中的外部 WSDL:地址已在使用中 8080