如何在wso2 BPS中处理null请求标记

时间:2013-10-14 05:26:37

标签: wso2 bpel

我在wso2 BPS中创建了一项服务。现在,当我测试我的服务时,我遇到了一个问题。那是我的请求有效载荷就像:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:roms="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <roms:CreateSceduler>
         <roms:SampleID>?</roms:SampleID>
         <!--Optional:-->
         <roms:ScheduleID>?</roms:ScheduleID>
         <roms:PersonID>?</roms:PersonID>
         <!--Optional:-->
         <roms:PersonName>?</roms:PersonName>
         <roms:Location>?</roms:Location>
         <roms:CreatedDateUTC>?</roms:CreatedDateUTC>
         <!--Optional:-->
         <roms:RecordDateTimeUTC>?</roms:RecordDateTimeUTC>
         <!--Optional:-->
         <roms:RecordedBy>?</roms:RecordedBy>
         <!--Optional:-->
         <roms:RecordedAt>?</roms:RecordedAt>
         <!--Optional:-->
         <roms:LastModifiedBy>?</roms:LastModifiedBy>
         <!--Optional:-->
         <roms:LastModifiedDateUTC>?</roms:LastModifiedDateUTC>
         <!--Optional:-->
         <roms:LastModifiedAt>?</roms:LastModifiedAt>
         <!--Optional:-->
         <roms:Comments>?</roms:Comments>
      </roms:CreateRoundTask>
   </soapenv:Body>
</soapenv:Envelope>

现在如上所示,有可选标签和强制标签。 现在我的老板希望当我尝试使用soap ui服务时,我不会传递可选标签,只会传递强制性标签,如:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:roms="http://tempuri.org/">
       <soapenv:Header/>
       <soapenv:Body>
          <roms:CreateSceduler>
             <roms:SampleID>?</roms:SampleID>
             <roms:PersonID>?</roms:PersonID>
             <roms:Location>?</roms:Location>
             <roms:CreatedDateUTC>?</roms:CreatedDateUTC>
             </roms:CreateRoundTask>
       </soapenv:Body>
    </soapenv:Envelope>

But when i invoke my BPS service with this payload in soap ui i get selection failure fault.
How can i achieve above functionality which my boss wants in wso2 BPS. 
Looking forward to your answers. Thanks in advance

1 个答案:

答案 0 :(得分:1)

BPEL选择失败意味着您的BPEL流程尝试访问您的消息中不存在的元素。

如果<assign>活动中发生此选择失败,您可以在ignoreMissingFromData元素中设置<copy>属性,以忽略此类情况。请参阅BPEL规范,第63页:

  

构造的可选ignoreMissingFromData属性用于指定   bpel:selectionFailure标准故障是否被抑制,如8.4.1节所述。   复制操作的选择结果。 ignoreMissingFromData的默认值为“no”。

如果条件中发生选择失败,则需要先检查是否存在此元素。