【问题标题】:BPEL activity Validate does not give validation error message to faultBPEL 活动 Validate 未向故障提供验证错误消息
【发布时间】:2013-11-12 18:29:37
【问题描述】:

我们在 BPEL 流程中使用验证活动来验证输入和输出消息,如下所示:

<validate name="validateInput" variables="inputVariable"/>

它工作正常,但是当发生验证错误时,消费者只会遇到这种错误:

<env:Fault xmlns:ns0="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
   <faultcode>ns0:invalidVariables</faultcode>
   <faultstring>faultName: {{http://docs.oasis-open.org/wsbpel/2.0/process/executable}invalidVariables}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}</faultstring>
   <faultactor/>
   <detail>
      <exception/>
   </detail>
</env:Fault>

所以我的消费者知道他发送了无效消息,但他根本没有得到任何关于到底出了什么问题的信息。

在企业管理器中,我可以看到验证错误消息以及消息验证失败的原因:

无效数据:变量“inputVariable”的值,部分“payload” 与此部分的架构定义不匹配 元素 'ptSrcIdx' 不出所料。

我需要将此验证错误消息返回给我的消费者,以便他可以看到他的消息有什么问题。

我将不胜感激。谢谢!

【问题讨论】:

    标签: oracle11g soa bpel


    【解决方案1】:

    Oracle 好像有针对这个问题的补丁,在 11.1.1.7 应该没问题。

    与此同时,我们使用我们自己的用 java 编写的验证器,并从 Embed Java BPEL 活动中调用。速度稍慢(cca +20%),但运行良好。

    【讨论】:

      猜你喜欢
      • 2019-05-21
      • 1970-01-01
      • 2014-05-29
      • 2020-06-20
      • 1970-01-01
      • 2022-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多