问题标签 [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.
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
提前致谢!
spring - Spring 反应式中的 MonoProcessor 用于什么?
在查看WiretapConnector
Spring 框架的源代码时,我偶然发现了一个 type 的对象MonoProcessor
。我尝试用谷歌搜索它的用途解释,但无济于事。
Javadoc 对 Reactive/Reactor 外行说的不多:
A
MonoProcessor
是实现有状态语义的 Mono 扩展。允许多订阅。一旦 aMonoProcessor
得到解决,新的订阅者将从缓存的结果中受益。
最后一句暗示计算的结果被缓存了,这似乎是MonoProcessor
这段代码中的用法。
有人可以澄清一下预期的用例是MonoProcessor
什么以及为什么首先引入它?
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
java - 使用 Spring Reactive (R2DBC) 连接 MSSQL,创建 bean 时出错
我目前正在尝试与 Microsoft SQL Server 建立数据库连接。不幸的是,我不明白为什么它不起作用。不幸的是,错误消息不能给我准确的信息。
入门级
数据库配置:
数据库初始化器:
领域:
导入 org.springframework.data.annotation.Id;导入 org.springframework.data.relational.core.mapping.Table;
@Table("person") 公共类人 {
存储库:
控制器:
绒球:
错误信息:
spring-boot - 找不到仓库
我有一个存储库接口作为
在@SpringApplication 类中,我有
将一些数据填充到数据库中。它不会被编译。在消息“应用程序启动失败”之后,它说
有或没有注释 @Repository 都不会产生不同的结果。我改为使用新课程的另一种方法。
结果还是一样。我已经做过很多次了,不知道为什么这次它不能与 Reactor 一起使用。Spring Boot 是最新版本,2.3.0 版本。
什么不见了?
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。
spring-webflux - 将 RabbitMQ 侦听器桥接到 Flux
我有一个响应式 Spring Boot 应用程序,它使用来自 RabbitMQ 的消息并将它们保存在(MongoDB)存储库中:
假设多条消息在短时间内到达,此代码可能会耗尽数据库的已配置 ConnectionPool。如果我会在 a 中接收消息Flux
,我可以将concatMap()
它们放入数据库或将它们插入到 n 个文档的存储桶中。
这就是为什么我尝试将给定的 RabbitMQ 侦听器连接到自我管理的 Flux 的原因:
这在本地和一段时间内有效,但在一段时间后(我预计 12-24 小时)它会停止在数据库中存储消息,所以我很确定我做错了什么。
将传入的 RabbitMQ 消息转换Flux
为消息的正确方法是什么?
spring-webflux - 如何将 bodyToFlux 用于从服务器发出的不同类型的子类以匹配适当的对象类型
我在 http 上有发射器,它发射不同对象类型(不同子类)的事件。订阅此流的 web 客户端需要检查传输的事件类型(映射到对象类型)。在这种情况下,如何实现它作为运算符的实例不起作用
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)' 会覆盖其他重试。
java - 如何在 Spring Webflux 中获取引荐来源网址?
如何在 Spring Webflux 中获取引荐来源网址?我试图查看ServerWebExchange exchange
对象中的标头属性,但找不到相同的。有人可以在这里帮助我吗?