Код ошибки в Datapower
Я использую сервис MPGW, который подключается к сервису CICS и возвращает ответ. Это мой поток. Пользовательский интерфейс -> DP MPGW gateway -> MPGW Service -> CICS service.
В случае ответа "Нет данных найдено" от CICS, я просто хочу установить код ошибки равным 100, а сообщение - "Данные не найдены" и перейти к пользовательскому интерфейсу. Но каждый раз datapower возвращает 500 Внутренняя ошибка сервера в пользовательский интерфейс.
Я использую errorHandler.xslt, чтобы проверить код ошибки из CICS и установить код ошибки и сообщение об ошибке.
Есть ли что-то, что мне нужно изменить dp:response-header('x-dp-response-code')? Если так, как это сделать?
Примечание: Ошибка Backend процесса: "Вкл." В MPGW(шлюз и служба).
2 ответа
Попробуй это:
Если в ответе содержится 500 не найденных ошибок. Сделайте dp:reject в правиле ответа. Это возьмет на себя ответственность за правило ошибки. В правиле ошибки настройте xslt и установите следующие значения:
<dp:set-variable name="'var://service/error-protocol-response'" value="'100'" />
<dp:set-variable name="'var://service/error-protocol-reason-phrase'" value="'No Data Found'" />
Согласно https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014432297 вы хотите:
В правиле ошибки:
Внутри правила ответа:
Это должно сделать трюк для MPGW, я верю.