我有很多方法使用Spring的WebClient中的onStatus API:
@Override
public Mono<Accommodation> createAccommodation(CreateAccommodation create) {
return webClient
.post()
.contentType(APPLICATION_JSON)
.bodyValue(create)
.retrieve()
.onStatus(HttpStatus::isError,
clientResponse -> clientResponse
.bodyToMono(ApiErrorResponse.class)
.flatMap(errorResponse -> Mono.error(new ResponseStatusException(
HttpStatus.valueOf(errorResponse.getStatus()),
errorResponse.getMessage()
))))
.bodyToMono(Accommodation.class);
}
我想做的是避免在每个WebClient调用中使用“onStatus”。
public AccommodationServiceClientImpl(WebClient.Builder builder) {
this.webClient = builder
.baseUrl("lb://accommodation-service/api/v1/accommodations")
.build();
}
找到了一个解决方案:ExchangeFilterFunction.ofResponseProcessor似乎正是我要找的。
@Configuration
public class WebClientConfig {
@Bean
@LoadBalanced
public WebClient.Builder webClientBuilder(){
return WebClient
.builder()
.filter(ExchangeFilterFunction.ofResponseProcessor(this::renderApiErrorResponse));
}
private Mono<ClientResponse> renderApiErrorResponse(ClientResponse clientResponse) {
if(clientResponse.statusCode().isError()){
return clientResponse.bodyToMono(ApiErrorResponse.class)
.flatMap(apiErrorResponse -> Mono.error(new ResponseStatusException(
clientResponse.statusCode(),
apiErrorResponse.getMessage()
)));
}
return Mono.just(clientResponse);
}
}
如果我继续尝试持久化这个实体,我将得到中持久化。 做这件事的正确方法是什么。可能是我理解的不对。
问题内容: 我正在尝试使用JavaFX中的WebView入门,但是当尝试打开WebView时,我收到以下所示的错误,我该如何解决此问题? 问题答案: 尝试运行WebView时遇到任何错误时,请确保您的VM选项包含模块javafx.web。 虚拟机选项: 在IntelliJ中,您可以通过转到IDE右上方的“编辑配置”按钮来访问VM选项。
问题内容: 我已经使用数据库中的SQL数据库开发了一个窗口服务,该数据库中的记录已满,因此查询执行需要很多时间,而默认命令超时是30S,但我想将其增加到120S。 但是我的应用程序中有很多方法,因此我想从APP.config文件中进行设置,这样它将适用于应用程序级别,任何人都可以告诉我如何实现此目标 谢谢 问题答案: 实现此目的的最简单方法是在类似以下内容的地方添加新条目: 然后,创建一个将填充值
问题内容: 我有一个模型: 如何编写基于类的视图,该视图创建新的模型实例并将外键设置为? 问题答案: 我通过覆盖方法解决了这个问题。下面是详细说明的样式: 但是我们可以简短地说(感谢dowjones123),在docs中提到了这种情况。
问题内容: 我试着把这2行 在我的根.htaccess文件中,但这给我带来“内部服务器错误”消息… php5正在服务器上运行, 我无权访问php.ini,因此我认为htaccess是我唯一的机会。 你能告诉我哪里错了吗? 提前致谢 问题答案: 是正确的。 您将必须与您的托管服务商联系-有些不允许您更改php.ini中的值
我希望从服务器加载数据并显示到我的应用程序中(