Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何设置弹簧控制器以处理背压请求_Java_Spring_Kotlin_Reactive Programming_Backpressure - Fatal编程技术网

Java 如何设置弹簧控制器以处理背压请求

Java 如何设置弹簧控制器以处理背压请求,java,spring,kotlin,reactive-programming,backpressure,Java,Spring,Kotlin,Reactive Programming,Backpressure,SpringMVC控制器将用作另一个服务的代理,以提供可能较大的文件 为了避免在任何给定的时间将来自另一个服务的整个WebClient响应存储在内存中,我想使用Spring5+Reactor项目的反应属性,并在浏览器使用它时流式传输它的响应 当前代码看起来像 import org.springframework.stereotype.Controller import org.springframework.web.bind.annotation.GetMapping import org.sp

SpringMVC控制器将用作另一个服务的代理,以提供可能较大的文件

为了避免在任何给定的时间将来自另一个服务的整个WebClient响应存储在内存中,我想使用Spring5+Reactor项目的反应属性,并在浏览器使用它时流式传输它的响应

当前代码看起来像

import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.reactive.function.client.ClientResponse
import org.springframework.web.reactive.function.client.WebClient
import reactor.core.publisher.Mono

@Controller
class ReportController {

    @GetMapping("/reports")
    fun getReport(): Mono<ClientResponse> {
        val webCient = WebClient.create()
        return webCient
                .get()
                .uri("http://localhost:3333/file")
                .exchange()
    }
}
  • 如何配置控制器以处理
    Mono
  • 如果响应类型为
    Mono
    ,请求是否会被反压?是否需要将其转换为字节块并使其流动
  • Spring文档说明了背压的许多好处,但没有回答上述问题,也没有给出任何关于
    Mono
    响应的警告。它仍然是反应性的吗

使用
@RestController
而不是
@Controller
。现在Jackson开始并尝试序列化响应
嵌套异常是com.fasterxml.Jackson.databind.exc.InvalidDefinitionException:我想没有为org.springframework.web.reactive.function.client.DefaultClientResponse类找到序列化程序错误消息已清除-您没有可以处理
ClientResponse
/
DefaultClientResponse
类型的序列化程序。
java.lang.IllegalStateException: Could not resolve view with name 'reports'.
    at org.springframework.web.reactive.result.view.ViewResolutionResultHandler.lambda$resolveViews$3(ViewResolutionResultHandler.java:277) ~[spring-webflux-5.0.6.RELEASE.jar:5.0.6.RELEASE]