Ошибка в WSO2 BPS при запуске doXslTranform

У меня есть назначение ниже в цикле while в процессе bpel, и я получаю сообщение об ошибке каждый раз, когда он запускается второй раз во время итерации:

<?xml version="1.0" encoding="UTF-8"?>
<bpel:assign validate="no" name="transformPlanoConta">
  <bpel:copy>
    <bpel:from>
      <![CDATA[bpel:doXslTransform("planoContaTransform.xsl", $COAGetXMLPLResponse.parameters/ns4:DATA_DS, "COACounter", $COACounter)]]>
    </bpel:from>
    <bpel:to part="parameters" variable="filaPLRequest">
      <bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
        <![CDATA[lotePayload]]>
      </bpel:query>
    </bpel:to>
  </bpel:copy>
  <bpel:copy>
    <bpel:from expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0"><![CDATA[$COACounter + 1]]>                                                                                    </bpel:from>
    <bpel:to variable="COACounter">
    </bpel:to>
  </bpel:copy>
</bpel:assign>

На первой итерации bpel обычно передает первое значение счетчика 0, и присвоение работает, как и ожидалось, но затем на второй итерации процесс завершается с ошибкой следующим образом:

selectionFailure: An exception occured while evaluating "{OXPath10Expression bpel:doXslTransform("planoContaTransform.xsl", $COAGetXMLPLResponse.parameters/ns4:DATA_DS, "COACounter", $COACounter)}": Error while executing an XPath expression: )] @286 {org.apache.ode.bpel.engine.BpelProcess}

Фактическая причина, по которой выражение является недопустимым, не отображается в сообщении об ошибке. Я выполнил некоторое устранение неполадок, и кажется, что проблема заключается в последних двух параметрах, потому что, если я просто удаляю их и передаю только первый и второй параметры, процесс завершается без ошибок. Кроме того, даже если я заменим переменную $COACounter на фиксированное целое число (0 или 1), цикл все равно будет давать ошибку на второй итерации.

0 ответов

Другие вопросы по тегам