Клиент Quarkus Microprofile Rest, как по-разному обрабатывать ошибки

У меня есть 2 службы Quarkus, одна действует как пограничная, а другая - как нижележащая, связь осуществляется через клиент Quarkus MicroProfile Rest-API. Теперь нижестоящая служба может возвращать состояние ошибки Bad request (4xx) с телом Json. Моя проблема теперь в том, что пограничная служба выдает ошибку 500 с WebApplicationException из-за этого, есть ли способ заполнить тот же код ответа и тело из нижестоящей службы в пограничную службу?


person iabughosh    schedule 27.04.2021    source источник
comment
Вы имеете в виду игнорировать тот факт, что нижестоящие службы не возвращают ответ 2XX и в любом случае используют полезную нагрузку?   -  person geoand    schedule 27.04.2021
comment
Да это оно.   -  person iabughosh    schedule 28.04.2021


Ответы (1)


Это исключение генерируется клиентом отдыха по умолчанию ResponseExceptionMapper.

Вы можете отключить его, добавив следующее свойство в application.properties:

microprofile.rest.client.disable.default.mapper=false

См. ResponxeExceptionMapper по умолчанию и ResponseExceptionMapper спецификации клиента MicroProfile Rest.

person Michał Szynkiewicz    schedule 28.04.2021
comment
Я попробовал указанное выше свойство в дополнение к org.eclipse.microprofile.rest.client.disable.default.mapper = false, и это не сработало! у него другое название, когда это приложение Quarkus? - person iabughosh; 29.04.2021
comment
Да. Какую версию остального клиента вы используете? Не могли бы вы открыть проблему в github.com/quarkusio/quarkus/issues с помощью репродуктора? - person Michał Szynkiewicz; 29.04.2021
comment
В качестве временного решения я использовал то, что вы предложили ResponseExceptionMapper, для указанного выше свойства конфигурации я открою для него билет, как только у меня будет готов репродуктор, я использую Quarkus 1.13.2. - person iabughosh; 30.04.2021