相关疑难解决方法(0)

Spring webflux 错误处理程序:如何在错误处理程序中获取请求的反应器上下文?

Spring Boot 2.1.5 项目反应堆 3.2.9

在我的 webflux 项目中,我广泛使用 reactor 上下文来传递一些值。

我在这里的目的是能够获取异常处理程序内部的上下文。

一个简单的例子:

@Component
@Order(-2)
public class GlobalErrorWebExceptionHandler extends
    AbstractErrorWebExceptionHandler {

    public GlobalErrorWebExceptionHandler(ErrorAttributes errorAttributes, ResourceProperties resourceProperties, ApplicationContext applicationContext, ServerCodecConfigurer configurer) {
        super(errorAttributes, resourceProperties, applicationContext);
        this.setMessageWriters(configurer.getWriters());
    }

    @Override
    protected RouterFunction<ServerResponse> getRoutingFunction(
      ErrorAttributes errorAttributes) {
        return RouterFunctions
            .route(RequestPredicates.all(), request -> {
                Throwable error = errorAttributes.getError(request);

                return ServerResponse.status(500).syncBody(error.getMessage()).doOnEach(serverResponseSignal -> {
                    //Here the context is empty because i guess i created a new flux
                    System.out.println("What is in my context ? " + serverResponseSignal.getContext());
                    System.out.println("What is …
Run Code Online (Sandbox Code Playgroud)

project-reactor spring-webflux

7
推荐指数
1
解决办法
3062
查看次数

标签 统计

project-reactor ×1

spring-webflux ×1