У меня было такое же требование, и после долгих исследований под капотом я смог найти работоспособное решение.
Причина установки свойства:
mc.setProperty('HTTP_SC', "404");
не сработало, это то, что свойство должно быть установлено в области оси axis2 (как сказал Абимаран). mc.setProperty не устанавливает его в этой области. Более того, объект MessageContext не предоставляет способа установить область действия.
Действие «Развернуть как прототип» фактически создает файл определения API путем слияния указанного встроенного сценария с шаблоном скорости и сохранения полученного определения API в файле.
- Шаблон: ./repository/resources/api_templates/prototype_template.xml
- Выходное местоположение: репозиторий/развертывание/сервер/синапсе-configs/по умолчанию/api/
Выходной файл будет иметь имя в формате:
поставщик--Имя API-vVERSION.xml
где provider — это имя пользователя создателя API.
Что я сделал, так это добавил фильтр в шаблон:
<filter source="boolean(get-property('HTTP_SC'))" regex="false">
<then>
<property name="HTTP_SC" value="200" scope="axis2"/>
</then>
<else>
<property name="HTTP_SC" expression="get-property('HTTP_SC')" scope="axis2"/>
</else>
</filter>
Я добавил его сразу после аналогичного блока (для обработки CONTENT_TYPE) в начале элемента inSequence.
person
user1920897
schedule
14.04.2016