问题标签 [spring-reactive]

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 投票
0 回答
249 浏览

spring - 弹簧网络套接字;处理程序没有适配器

我一直在尝试设置一个简单的 WebSocketHandler 实现,但我遇到了这个javax.servlet.ServletException: No adapter for handler [turnip.gg.TurnipWebSocketHandler@5fdceca2]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler我无法解决的错误。

这是我的配置;

这是我的简单 WebSocketHandler

提前致谢!

0 投票
1 回答
541 浏览

spring - Spring 反应式中的 MonoProcessor 用于什么?

在查看WiretapConnectorSpring 框架的源代码时,我偶然发现了一个 type 的对象MonoProcessor。我尝试用谷歌搜索它的用途解释,但无济于事。

Javadoc 对 Reactive/Reactor 外行说的不多:

AMonoProcessor是实现有状态语义的 Mono 扩展。允许多订阅。一旦 aMonoProcessor得到解决,新的订阅者将从缓存的结果中受益。

最后一句暗示计算的结果被缓存了,这似乎是MonoProcessor这段代码中的用法。

有人可以澄清一下预期的用例是MonoProcessor什么以及为什么首先引入它?

0 投票
0 回答
552 浏览

apple-push-notifications - 通过 HTTP2 使用 Spring WebClient 的 POST API

我正在为使用身份验证令牌的推送通知编写 JUNIT。现在,Apple 推送 API 基于 HTTP2,我想为此目的使用 spring WebClient。

当我运行测试用例时,我得到:

我能够使用 WebClient 进行 HTTP 调用,但在这种情况下它只是不起作用。我正在使用 JAVA 1.8。我什至尝试在引导类路径中添加 ALPN,但仍然出现同样的错误。

WebClient 是否支持 HTTP2?或者我必须开始研究 OkHTTP2。

同时,我正在阅读有关在创建 WebClient 时使用的 clientConnector

0 投票
1 回答
1912 浏览

java - 使用 Spring Reactive (R2DBC) 连接 MSSQL,创建 bean 时出错

我目前正在尝试与 Microsoft SQL Server 建立数据库连接。不幸的是,我不明白为什么它不起作用。不幸的是,错误消息不能给我准确的信息。

入门级

数据库配置:

数据库初始化器:

领域:

导入 org.springframework.data.annotation.Id;导入 org.springframework.data.relational.core.mapping.Table;

@Table("person") 公共类人 {

存储库:

控制器:

绒球:

错误信息:

0 投票
1 回答
29 浏览

spring-boot - 找不到仓库

我有一个存储库接口作为

在@SpringApplication 类中,我有

将一些数据填充到数据库中。它不会被编译。在消息“应用程序启动失败”之后,它说

有或没有注释 @Repository 都不会产生不同的结果。我改为使用新课程的另一种方法。

结果还是一样。我已经做过很多次了,不知道为什么这次它不能与 Reactor 一起使用。Spring Boot 是最新版本,2.3.0 版本。

什么不见​​了?

0 投票
0 回答
755 浏览

spring-cloud-gateway - Spring cloud gateway - 在将请求路由到下游系统之前使用 GlobalFilter 添加动态标头

我试图在将请求传递给下游之前为所有请求标头添加动态值。

我创建了一个用户定义的类来实现org.springframework.cloud.gateway.filter.GlobalFilter

在这个类中,我必须调用其他服务(2 个响应式 redis 和 1 个 api 调用)来检索需要在标题中设置的动态值。

这是我现在面临的问题,

GatewayFilterChain.filter(exchange) 订阅在其他单声道订阅(2 个 redis 和 1 个服务)完成之前完成。因此,在我改变交换之前,不添加标头的请求将传递到下游。

为了避免这个问题,我添加了单声道订阅的延迟

chain.filter(exchange).delaySubscription(Duration.ofMillis(300L))

但是我不想在系统中引入手动延迟,请您指导/建议我更好的解决方案,以便在其他单声道订阅完成之前不会订阅 GatewayFilterChain。

0 投票
0 回答
500 浏览

spring-webflux - 将 RabbitMQ 侦听器桥接到 Flux

我有一个响应式 Spring Boot 应用程序,它使用来自 RabbitMQ 的消息并将它们保存在(MongoDB)存储库中:

假设多条消息在短时间内到达,此代码可能会耗尽数据库的已配置 ConnectionPool。如果我会在 a 中接收消息Flux,我可以将concatMap()它们放入数据库或将它们插入到 n 个文档的存储桶中。

这就是为什么我尝试将给定的 RabbitMQ 侦听器连接到自我管理的 Flux 的原因:

这在本地和一段时间内有效,但在一段时间后(我预计 12-24 小时)它会停止在数据库中存储消息,所以我很确定我做错了什么。

将传入的 RabbitMQ 消息转换Flux为消息的正确方法是什么?

0 投票
1 回答
290 浏览

spring-webflux - 如何将 bodyToFlux 用于从服务器发出的不同类型的子类以匹配适当的对象类型

我在 http 上有发射器,它发射不同对象类型(不同子类)的事件。订阅此流的 web 客户端需要检查传输的事件类型(映射到对象类型)。在这种情况下,如何实现它作为运算符的实例不起作用

0 投票
1 回答
919 浏览

spring-boot - Spring WebClient 多次重试时处理不同的错误

我可以添加多个retryWhen来执行重试以处理不同的 WebClient 故障响应吗?

我想要达到的目标:

我正在使用 WebClient 进行 REST API 调用。很少有错误场景,发生时我需要执行重试,但延迟不同。

例如,1.如果401 Unauthorize发生,我可以在刷新令牌后立即重试。2. 如果502/503 Server发生错误,我需要延迟 5 秒后重试。3.如果429 Too Many Request发生,我需要延迟重试时间,比如20秒后。

我想创建如下重试规范:

看起来 `.retryWhen(retry429)' 会覆盖其他重试。

0 投票
1 回答
834 浏览

java - 如何在 Spring Webflux 中获取引荐来源网址?

如何在 Spring Webflux 中获取引荐来源网址?我试图查看ServerWebExchange exchange对象中的标头属性,但找不到相同的。有人可以在这里帮助我吗?