【发布时间】:2019-06-29 04:29:40
【问题描述】:
问题:在 BPEL 中使用 java 嵌入是否被认为是不好的做法,如果是,为什么?
在我的工作中,我经常使用 Java 嵌入作为 BPEL 组件来完成某些工作。它可以是非常简单的东西,在 Java 中对我来说很舒服,也可以是(据我所知)用 BPEL 中的其他组件做不到的东西。
在 12c BPEL 源中嵌入简单 java 的示例:
<bpelx:exec name="TruncateBlankNamespace" language="java" version="1.5">
<![CDATA[String origHeader = (String)getVariableData("randomHeader"); try { String replacedvalue = origHeader.replaceAll(" xmlns=\"\"", ""); setVariableData("randomHeader_something", replacedvalue) ;} catch (Exception exception) { exception.printStackTrace(); }]]>
</bpelx:exec>
我使用它的另一个示例是将有效负载编码和解码为 base64 并返回,
base64 编码嵌入到 11c BPEL 源代码的示例:
<bpelx:exec import="oracle.soa.common.util.Base64Encoder"/>
<variables>
<variable name="DecodedMessage" type="xsd:string"/>
<variable name="EncodedMessage" type="xsd:base64Binary"/>
<variables/>
<bpelx:exec name="EncodePayload" language="java" version="1.5">String decodedMessage = (String)getVariableData("DecodedMessage"); try { String encodedMessage = Base64Encoder.encode(decodedMessage.getBytes()); setVariableData("EncodedMessage", encodedMessage);} catch (Exception exception) { exception.printStackTrace(); }</bpelx:exec>
现在我发现嵌入非常有用的工具可以解决某些问题并快速解决问题,而无需在您使用的工具中做额外的功课。然而,我注意到在 Oracle Soa 套件/BPEL 中使用 Java 嵌入是不好的做法。
我是一个初学中间件开发者,刚接触堆栈溢出,所以如果我说得不够全面,请原谅,请指出这篇文章的所有错误,并随时编辑:D!
非常感谢!
杰斯帕
【问题讨论】: