用Spring 5 WebFlux框架解码ByteArray
我试图用kotlin来使用新的Spring WebFlux框架。 而我无法找到这个代码(myService)的错误:
fun foo(): Flux<ByteArray> { val client = WebClient.create("http://byte-array-service") return client .get() .uri("/info") .accept(MediaType.APPLICATION_OCTET_STREAM) .exchange() .flatMapMany { r -> r.bodyToFlux(ByteArray::class.java) } }
这个方法返回Flux 7893字节,我知道并不是byte-array-service发送的所有字节。 如果我使用旧式的休息模板一切正常
fun foo(): Flux<ByteArray> { val rt = RestTemplate() rt.messageConverters.add( ByteArrayHttpMessageConverter()) val headers = HttpHeaders() headers.accept = listOf(MediaType.APPLICATION_OCTET_STREAM) val entity = HttpEntity<String>(headers) val r = rt.exchange("http://byte-array-service/info", HttpMethod.GET,entity, ByteArray::class.java) return Flux.just(r.body) }
它将返回从byte-array-service发送的所有274124个字节
这里是我的消费者
fun doReadFromByteArrayService(req: ServerRequest): Mono<ServerResponse> { return Mono.from(myService .foo() .flatMap { accepted().body(fromObject(it.size)) }) }
- 如何使用onErrorMap()处理异常时如何访问Mono <T>?
- Kotlin无法在类中使用@Configuration @EnableWebMvc注释创建@Autowired字段
- 使用Spring HATEOAS ControllerLinkBuilder和Kotlin抛出IllegalArgumentException
- Kotlin数据类上的Spring构造函数注解,具有默认值
- Spring REST,Kotin和默认的基本参数导致错误
- 我可以写一个使用自动布线的Spring bean的Kotlin扩展函数吗?
- Spring Boot Kotlin Jersey ModelValidationException
- Spring @PostConstruct取决于@Profile
- Kotlin NoClassDefFoundError和spring @RequestMapping方法