问题标签 [spring-webflux]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2244 浏览

spring - 编组/解组 XML 的 Spring 引导方式

什么是自动编组/解组 XML 的“Boot-iful”方式?

我的休息控制器:

ProvisioningRequest 类由 Jaxb 从 XSD 生成。

将示例请求发布到其余端点会出现以下错误:

我在类路径中有'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'。

配置 @Bean Jackson2ObjectMapperBuilder 似乎也无济于事。

我错过了什么吗?

=== 完整的堆栈跟踪:

0 投票
0 回答
2279 浏览

spring - Spring 反应式 Rest xml 有效负载

我正在通过邮递员发送请求以使用弹簧反应式编程 控制器尝试其余有效负载

聚甲醛

Pojo类

一世

样品请求

回复

响应的问题是没有获得完整的数据。Pojo 的 inputName 和 inputvalue 为空。 预期产出

非常感谢任何帮助。

0 投票
3 回答
3168 浏览

spring - Spring Reactive xml有效负载异常java.lang.IllegalStateException:无法解析“reactor.core.publisher.Mono”类型的参数0

我有一个弹簧启动应用程序。试图通过邮递员将 xml 有效负载发送到 Post 请求。我得到以下异常

下面给出的是POM

控制器

POJO类

邮递员请求示例

我收到 500 内部服务器错误作为响应。

非常感谢您的帮助。

0 投票
1 回答
514 浏览

mongodb - 通量串联不返回

我正在尝试使用 Spring Boot 2.0、webflux 和 reactiv Mongo 存储库。我有两种变体,首先删除然后将数据添加到集合中。在第一个变体中,线程阻塞直到删除完成,在第二个变体中,数据的添加被连接到删除。

变体 A

变体 B

变体 A 返回,变体 B 不返回。有什么区别?结合两个存储库操作的正确方法是什么?

0 投票
1 回答
1870 浏览

spring - Spring Web Flux(反应式)功能路由无法按预期与 Kotlin 一起工作

你好,有兴趣在 Kotlin 中编写 Spring 应用程序的好人。我正在玩 Spring Boot 2.0.0 快照和spring-webflux. 这段代码:

没有按预期工作(至少如我所料:))

但:

工作案例跟踪:

不工作案例跟踪:

这似乎是一个错误(因为"/{id}".route {...}据说正在使用 RouterFunctions.nest),但我可能是错的。欢迎您的想法和帮助。

我显然知道我可以/1/hello通过编写来完成工作GET("/{id}/hello") { ... },但我对嵌套.route { ...}变体感兴趣,因为它支持我从另一个位置(如地图等)添加嵌套路线的用例。

0 投票
1 回答
746 浏览

spring-webflux - 从 RestController 中的 TCP 服务器获取响应

我的 Spring webflux 控制器需要访问远程 TCP 服务器。如何将来自 TCP 服务器的响应流式传输到客户端?

就像是:

但是使用 TcpClient(不是 WebClient)。

谢谢,

- 缺口

0 投票
2 回答
2758 浏览

spring-mvc - Spring Webflux 和 Observable 响应不起作用

我刚刚使用带有版本 2.0.0.BUILD-SNAPSHOT 的 spring-boot-starter-webflux 创建了一个简单的 Spring Boot 应用程序,它带来了 spring-webflux 版本 5.0.0.BUILD-SNAPSHOT 和 Spring Core、Beans、Context 等。

如果我创建一个简单的@RestController并提供一个@GetMapping简单的返回 a Flux<String>,那么一切都会按预期工作。

但是,如果我从FluxRxJava's更改Observable,我会收到此错误:

通过代码调试一下,我发现 JacksonObjectMapper以某种方式注册了其 typeFactoryFluxMono的其余反应类型,所以后来MappingJackson2HttpMessageConverter知道如何(反)序列化它们。

但是,当我使用Observable: 我没有找到类型ObservableSingle在 的类型工厂中注册时,情况并非ObjectMapper如此,所以我得到了上述错误。

有没有人遇到过这个问题?我是否缺少任何依赖项?我是否需要手动告诉 Jackson 如何从 RxJava 结构中(反)序列化?但是为什么 Jackson 已经知道 Flux 和 Mono 了?

谢谢你的帮助。

编辑:

我正在使用 RxJava 1.2.7。这是我的 pom.xml:

这是我的控制器代码的示例:

0 投票
2 回答
4606 浏览

spring - 如何启用 Spring Reactive Web MVC 来处理 Multipart-file?

我正在尝试在 spring boot 2.0 应用程序中使用新的响应式 web-mvc 实现。我正在尝试定义一种使用多部分文件但未能成功使其工作的方法:( - 我总是收到 415 错误。

一方面,我有一个包含以下请求映射的控制器:

另一方面,我不得不在基本依赖项之上添加一个服务器,因为 netty 似乎不处理多部分文件。我因此添加了使应用程序自动配置能够匹配和满足的spring-boot-starter-tomcat依赖项。MultipartAutoConfiguration

使用 curl 调用发布内容时: curl 'Meta-Date: 20170101104532' --form "file=@file.bin" http://localhost:8082/myPath/foo/bar 激活调试日志时(logging.level.org.springframework.web=DEBUG)我得到了这个异常: org.springframework.web.server.UnsupportedMediaTypeStatusException: Request failure [status: 415, reason: "Content type 'multipart/form-data;boundary=------------------------58fa43b8f1a26de4' not supported"]

RequestBodyArgumentResolver具有以下受支持的媒体类型的会引发此错误:[*/*, text/xml, application/*+json;charset=UTF-8, application/xml, text/plain;charset=UTF-8, application/x-www-form-urlencoded, application/json;charset=UTF-8]由 9 提供DecoderHttpMessageReader

在发布之前,我还看了看:

我的理解是 Spring web 5.0 使用了一个新的请求解码器系统,因为我在 spring 4 spring boot 应用程序上找不到这些类,并且还没有DecoderHttpMessageReader处理多部分文件我错过了什么吗?还是我应该等待一个实施?

0 投票
0 回答
698 浏览

spring - 我使用 Spring WebFlux 实现简单的 CRUD 服务是否正确?

我正在使用 Spring WebFlux 和 Reactive Spring Data MongoDB 实现一个简单的基于电影的 CRUD API。我想确保我的实现是正确的,并且我正确地使用了 Flux 和 Mono 来实现 CRUD 操作。我还想确保我正确处理任何错误或空值。我对这种编程范式和 Spring WebFlux 非常陌生,所以我不确定 Controller 和 Service 层的实现是否正确,我想确保我遵守 Spring WebFlux 和 Project Reactor 最佳实践。

0 投票
1 回答
5550 浏览

java - Spring WebFlux WebClient 弹性和性能

我只是通过示例 PoC 项目在简单的常见场景中测试了一些阻塞/非阻塞解决方案。

设想:

  • 有休息阻塞端点非常慢 - 每个请求需要 200 毫秒。
  • 还有其他客户端应用程序,它调用这个慢端点。

我已经使用 WebFlux - WebClient、Ratpack 和 Lagom 测试了当前(阻塞)Spring Boot 客户端(tomcat)、Spring Boot 2.0(netty)。在每种情况下,我都通过加特林测试简单场景(100-1000 个用户/秒)来强调客户端应用程序。

我已经测试了 ratpack 和 lagom 作为参考非阻塞 io 服务器,以将结果与 spring boot(阻塞和非阻塞)进行比较。

在所有情况下,我都有预期的结果,除了 spring boot 2.0 测试。它仅适用于小负载水平,但即使如此,延迟也很高。如果负载水平上升 - 所有请求都超时。

WebClient 用法:

我不知道出了什么问题或当前的快照版本只是在起作用。

所有来源发布在https://github.com/rutkowskij/blocking-non-blocking-poc

  • 阻塞服务 - 慢阻塞端点
  • non-blocking-client - 基于 Spring Boot 2.0 和 WebClient 的客户端

我刚刚使用带有版本 2.0.0.BUILD-SNAPSHOT 的 spring-boot-starter-webflux 创建了一个简单的 Spring Boot 应用程序,它带来了 spring-webflux 版本 5.0.0.BUILD-SNAPSHOT 和 Spring Core、Beans、Context 等。