2

我们在 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”的值,部分“有效负载”与此部分的架构定义不匹配不期望元素“ptSrcIdx”。

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

我将不胜感激。谢谢!

4

1 回答 1

0

看来 Oracle 有一些针对这个问题的补丁,在 11.1.1.7 中也应该没问题。

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

于 2014-01-27T11:26:33.867 回答