如何解决Spring-Webflux:打印错误响应并在Web客户端出现错误的情况下引发异常
我正在尝试使用public async Task Update(T item)
{
using (IDynamoDBContext dbContext = _dataContextFactory.Create())
{
T savedItem = await dbContext.LoadAsync(item);
if (savedItem == null)
{
throw new AmazonDynamoDBException("DynamoService.Update: The item does not exist in the Table");
}
await dbContext.SaveAsync(item);
}
}
或onStatus
记录来自Web客户端的错误响应。我能够基于错误代码引发异常,但无法记录响应。我可以成功记录消息。
下面是我的代码
我尝试使用exchange
方法和.retreive
方法。但是打印的不是来自客户端的打印响应,而是打印以下代码
当前正在响应打印;
.exchange
预期的响应:
checkpoint("Body from POST *****Printing Backend Url ******[DefaultClientResponse]")
当我使用邮递员或soapui时,上述消息从客户端返回
使用.retrieve()方法
{errorCd:404,errorMsg:"Not Found",errorDetails"Person Not Found for Given Request"}
使用.exchange()方法
webClient
.post()
.uri(url)
.header(ACCEPT,APPLICATION_JSON_VALUE)
.bodyValue(request)
.retrieve()
.onStatus({ httpStatus -> HttpStatus.NOT_FOUND == httpStatus },{
logger.info { "Client Response :${it.bodyToMono(String::class.java)}" }
;Mono.error(MyCustomException))
})
.bodyToMono(Person::class.java)
任何帮助都会得到赞赏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。