У нас есть независимый пакет, создающий фабричные детали на основе нескольких переменных заголовка [direct-vm: createPartService].
Моему приложению нужно пройтись по списку деталей и периодически вызывать этот комплект.Мой метод partBean.update просто извлекает информацию о детали из списка деталей, настраивает переменные заголовка, а затем вызывает createPartService.
Я использую следующий цикл doWhile.Я нахожу, что когда возвращаемое состояние createPartService имеет статус ОШИБКА, следующий цикл работает отлично.Рабочий процесс выходит из цикла и переходит в раздел обработки исключений.Но, когда возвращаемое состояние createPartService никогда не ошибается, т. Е. Каждый createPartService является SUCCESS, цикл while никогда не останавливается.
<loop doWhile="true">
<simple>${header.STATUS} == 'SUCCESS'</simple>
<bean ref="partBean" method="update"/>
<to uri="direct-vm:createPartService"/>
<choice>
<when>
<simple>${header.STATUS} == 'ERROR'</simple>
<throwException exceptionType="java.lang.Exception message="${header.ERROR_MESSAGE}"/>
<to uri="mock:endPartsError"/>
</when>
<otherwise>
<log message="### update part succeeded" loggingLevel="DEBUG"/>
</otherwise>
</choice>
</loop>
Затем я попытался и другое условие,
<simple>${header.STATUS} == 'SUCCESS' && ${exchangeProperty[CamelLoopIndex]} < ${headers.PART_COUNT}</simple>
ВерблюдКажется, не принимает логику "и".Приведенная выше оценка всегда возвращает false.Я также попытался заменить '&&' на 'и' или соответствующую HTML-сущность.Нет никакой разницы.Любое предложение о циклическом просмотре списка и корректном завершении работы при отсутствии ошибки?