问题标签 [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.
spring - 编组/解组 XML 的 Spring 引导方式
什么是自动编组/解组 XML 的“Boot-iful”方式?
我的休息控制器:
ProvisioningRequest 类由 Jaxb 从 XSD 生成。
将示例请求发布到其余端点会出现以下错误:
我在类路径中有'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'。
配置 @Bean Jackson2ObjectMapperBuilder 似乎也无济于事。
我错过了什么吗?
=== 完整的堆栈跟踪:
spring - Spring 反应式 Rest xml 有效负载
我正在通过邮递员发送请求以使用弹簧反应式编程 控制器尝试其余有效负载
聚甲醛
Pojo类
一世
样品请求
回复
响应的问题是没有获得完整的数据。Pojo 的 inputName 和 inputvalue 为空。 预期产出
非常感谢任何帮助。
spring - Spring Reactive xml有效负载异常java.lang.IllegalStateException:无法解析“reactor.core.publisher.Mono”类型的参数0
我有一个弹簧启动应用程序。试图通过邮递员将 xml 有效负载发送到 Post 请求。我得到以下异常
下面给出的是POM
控制器
POJO类
邮递员请求示例
我收到 500 内部服务器错误作为响应。
非常感谢您的帮助。
mongodb - 通量串联不返回
我正在尝试使用 Spring Boot 2.0、webflux 和 reactiv Mongo 存储库。我有两种变体,首先删除然后将数据添加到集合中。在第一个变体中,线程阻塞直到删除完成,在第二个变体中,数据的添加被连接到删除。
变体 A
变体 B
变体 A 返回,变体 B 不返回。有什么区别?结合两个存储库操作的正确方法是什么?
spring - Spring Web Flux(反应式)功能路由无法按预期与 Kotlin 一起工作
你好,有兴趣在 Kotlin 中编写 Spring 应用程序的好人。我正在玩 Spring Boot 2.0.0 快照和spring-webflux
. 这段代码:
没有按预期工作(至少如我所料:))
但:
工作案例跟踪:
不工作案例跟踪:
这似乎是一个错误(因为"/{id}".route {...}
据说正在使用 RouterFunctions.nest),但我可能是错的。欢迎您的想法和帮助。
我显然知道我可以/1/hello
通过编写来完成工作GET("/{id}/hello") { ... }
,但我对嵌套.route { ...}
变体感兴趣,因为它支持我从另一个位置(如地图等)添加嵌套路线的用例。
spring-webflux - 从 RestController 中的 TCP 服务器获取响应
我的 Spring webflux 控制器需要访问远程 TCP 服务器。如何将来自 TCP 服务器的响应流式传输到客户端?
就像是:
但是使用 TcpClient(不是 WebClient)。
谢谢,
- 缺口
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>
,那么一切都会按预期工作。
但是,如果我从Flux
RxJava's更改Observable
,我会收到此错误:
通过代码调试一下,我发现 JacksonObjectMapper
以某种方式注册了其 typeFactoryFlux
中Mono
的其余反应类型,所以后来MappingJackson2HttpMessageConverter
知道如何(反)序列化它们。
但是,当我使用Observable
: 我没有找到类型Observable
或Single
在 的类型工厂中注册时,情况并非ObjectMapper
如此,所以我得到了上述错误。
有没有人遇到过这个问题?我是否缺少任何依赖项?我是否需要手动告诉 Jackson 如何从 RxJava 结构中(反)序列化?但是为什么 Jackson 已经知道 Flux 和 Mono 了?
谢谢你的帮助。
编辑:
我正在使用 RxJava 1.2.7。这是我的 pom.xml:
这是我的控制器代码的示例:
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 MultiPart MediaType Unsupported这似乎与此处无关,因为我的 autoconf 报告包含以下条目:
MultipartAutoConfiguration#multipartResolver matched
- 使用 angularjs $http 将 content-type 设置为 utf-8添加标头设置
Content-Transfer-Encoding: binary
并没有改变任何东西。
我的理解是 Spring web 5.0 使用了一个新的请求解码器系统,因为我在 spring 4 spring boot 应用程序上找不到这些类,并且还没有DecoderHttpMessageReader
处理多部分文件我错过了什么吗?还是我应该等待一个实施?
spring - 我使用 Spring WebFlux 实现简单的 CRUD 服务是否正确?
我正在使用 Spring WebFlux 和 Reactive Spring Data MongoDB 实现一个简单的基于电影的 CRUD API。我想确保我的实现是正确的,并且我正确地使用了 Flux 和 Mono 来实现 CRUD 操作。我还想确保我正确处理任何错误或空值。我对这种编程范式和 Spring WebFlux 非常陌生,所以我不确定 Controller 和 Service 层的实现是否正确,我想确保我遵守 Spring WebFlux 和 Project Reactor 最佳实践。
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 等。