无法构造 `reactor.core.publisher.Mono` Spring Cloud OpenFeign 和 Spring boot 2 的实例

2024-01-01

Goal:从 Spring Boot 1.x (webMvc) 迁移到版本 2 (webFlux),从 Spring Cloud Edgware SR2 迁移到 FinchleyM8(等待发布版本)。

Problem:Feign -> OpenFeign。 OpenFeign 底层使用 RxJava,但使用 WebFlux - Reactor3。目前,当我使用 Mono 作为返回类型时,出现错误:

引起原因:org.springframework.http.converter.HttpMessageConversionException:类型定义错误:[简单类型,类reactor.core.publisher.Mono];嵌套异常是 com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造实例reactor.core.publisher.Mono(不存在像默认构造那样的创建者):抽象类型需要映射到具体类型,具有自定义反序列化器,或者包含附加类型信息

代码示例:

@FeignClient(name = "thirdpartyresource", url = "${third.party.resource.url}")
public interface ThirdPartyResource {

    @PostMapping(value = "/validate", consumes = APPLICATION_FORM_URLENCODED_VALUE)
    Mono<ValidationResultDto> validate(MultiValueMap multiValueMap); // WORKS BAD
    // Single<ValidationResultDto> validate(MultiValueMap multiValueMap); WORKS WELL
}

Question: 我是否需要创建自己的 Single 到 Mono 转换器,还是 spring-cloud-starter-openfeign 的一些问题,并且所有的都应该可以工作 OOTB?


The reactor.core.publisher.Mono属于spring-boot-starter-webflux jar.

从以下位置获取它的最新版本Maven 存储库 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-webflux.

然后将其添加到您的 pom.xml 中

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
        <version>2.5.3</version>
</dependency>

还要删除spring-boot-starter-web从你的 pom.xml 中,以防万一你有它。

<!--<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
</dependency>-->

这解决了问题!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法构造 `reactor.core.publisher.Mono` Spring Cloud OpenFeign 和 Spring boot 2 的实例 的相关文章

随机推荐

  • 在 Pandas 中使用窗口进行动态离群值检测

    我想实现离群值检测 它将使用一个窗口来检查下一个元素是否是离群值 假设我们在 pd Series 上使用长度为 3 的窗口 如下所示 0 1 2 3 4 我会计算 0 1 2 上的中位数和疯狂值 或平均值和标准差 并检查 3 是否为异常值
  • 为什么非聚集索引扫描比聚集索引扫描更快?

    据我所知 堆表是没有聚集索引的表 没有物理顺序 我有一个包含 120k 行的堆表 扫描 我正在使用此选择 SELECT id FROM scan 如果我为 id 列创建非聚集索引 我得到223 物理读取 如果我删除非聚集索引并更改表以使 i
  • JSF 自定义复合组件与自定义经典组件之间有什么区别

    我想构建一个自定义 JSF 组件 现在我读了一些oracle的文档并看到了一些代码示例 问题是我有点困惑 似乎有两种方法可以使用 JSF 2 0 构建自定义组件 据我了解 自 JSF 2 0 以来 我可以使用这些复合组件来构建我自己的组件
  • OpenGL 中的帧缓冲区对象和像素缓冲区对象有什么区别?

    FBO 和 PBO 有什么区别 我应该使用哪一个来进行离屏渲染 FBO 和 PBO 有什么区别 更好的问题是它们有何相似之处 他们唯一相似的就是他们names A 帧缓冲对象 http www opengl org wiki Framebu
  • vim自动跳到下一行

    vim 中的一个令人沮丧的行为是 当我向右或向左移动光标 分别为 l 或 h 并且我位于行的末尾或开头时 我的光标不会移动到下一行的第一列或上一行的最后一列 有办法改变这种行为吗 您可以使用whichwrap设置使h and l环绕各行的开
  • 使用带有依赖项的 useEffect hook 时何时触发清理函数?

    我正在使用 useEffect 来显示 UI 加载 但仅在 250 毫秒后 它有效 但我真的不明白为什么 特别是 useEffect 如何以及何时调用返回的函数 清除超时 嗯 我不确定这是否完美 有时应该出现 正在加载 消息 但事实并非如此
  • 当使用多个 WHEN MATCHED 语句时,它们是全部执行,还是只执行一个?

    如果 MERGE 语句中有多个 WHEN MATCHED 语句 如果它们为真 它们是否都会执行 我的例子 DECLARE X bit NULL skipping the MERGE statement straight to WHEN MA
  • 分析 Ruby 程序调用的 C 共享库

    我有一个用Ruby和C编写的程序 C部分是一个共享库 它是Ruby程序的扩展 我想使用 gprof 分析我编写的 C 共享库 我像这样编译共享库 gcc I I usr lib ruby 1 8 i486 linux I usr lib r
  • 弱引用的好处

    有人可以解释一下 C 中不同类型引用的主要好处吗 弱引用 软参考 虚拟引用 强有力的参考 我们有一个消耗大量内存的应用程序 我们正在尝试确定这是否是一个需要关注的领域 我相信软引用和幻像引用来自 Java 长弱引用 将 true 传递给 C
  • python中是否可以同时运行多个asyncio?

    根据我得到的解决方案 在 python 中使用 asyncio 运行多个套接字 https stackoverflow com questions 62571622 running multiple sockets using asynci
  • 将自定义表单参数传递给表单集

    我定义了以下表格 class MyForm ModelForm def init self readOnly False args kwargs super MyForm self init args kwrds if readOnly D
  • mod_rewrite 传递变量

    我有以下 mod rewrite 规则 RewriteRule search php action procedure procedureName 1 这可以很好地将 blabla 之类的内容重定向到 search php action p
  • 就地应用于满足条件的 pandas 数据框的列

    考虑以下 pandas 数据框 df pd DataFrame t 1 2 3 x1 4 5 6 x2 7 8 9 gt gt gt print df t x1 x2 0 1 4 7 1 2 5 8 2 3 6 9 我想对名称包含字符 x
  • iOS 13 对 UISearchBar 色调的更改,无法达到相同的结果

    我一整天都在尝试 试图弄清楚如何让我的搜索栏在 iOS13 中显示与 iOS 12 11 中显示的相同 所以添加搜索栏的方式就是简单的新建一个UISearchController var searchController new UISea
  • 什么时候使用 Java 的 @Override 注解?为什么?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 使用 Java 的最佳实践是什么 Override注释以及为什么 用以下标记来标记每个被重写的
  • 基于分布式 JMS 的日志记录.. 表现平平?

    在我们精美的 ESB 中 每个请求的日志记录都是通过基于 JMS 日志记录的通用基础设施完成的 简而言之 发生的事情如下 服务获取请求服务 在 LogData 中准备一些数据 对象服务调用数据库 LogData 对象中捕获数据库交互所花费的
  • python中有COMMIT模拟用于写入文件吗?

    我有一个打开的文件可供写入 并且有一个运行了数天的进程 在相对随机的时刻将某些内容写入文件中 我的理解是 直到我执行 file close 之前 有可能没有任何内容真正保存到磁盘上 真的吗 如果主进程尚未完成时系统崩溃怎么办 有没有一种方法
  • 无法调用不带参数的类型的初始值设定项 - Swift

    我正在从 Objective C 转向 Swift 我想做的只是创建一个类的实例 以便我可以访问该类的属性 var myClassInstance MyClass print length is myClassInstance variab
  • “文件名 062014.xlsx 未被识别为 OLE 文件”

    我正在开发一个处理 Excel 的复杂程序 因此我使用 PHPExcel 从浏览器搜索和编辑 Excel 文件 我的问题出在程序的编辑部分 所以我编写了一个基本程序来编辑现有的 Excel 页面 PHPExcel 似乎无法将 Excel 中
  • 无法构造 `reactor.core.publisher.Mono` Spring Cloud OpenFeign 和 Spring boot 2 的实例

    Goal 从 Spring Boot 1 x webMvc 迁移到版本 2 webFlux 从 Spring Cloud Edgware SR2 迁移到 FinchleyM8 等待发布版本 Problem Feign gt OpenFeig