问题标签 [openfeign]

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 投票
1 回答
2023 浏览

spring - Feign ErrorDecoder 未被调用 - 如何配置 feign 以使用它?

据我了解,当请求响应状态码!= 2xx 时,将调用 feign ErrorDecoder 的 decode() 方法。通过调试我的测试,我发现我的 CustomErrorDecoder 的 decode() 方法没有在例如 504 或 404 上调用。我尝试了两种配置方法:

将其作为 Bean 包含在客户端配置中:

或将其写入应用程序配置:

两种方式都不会调用 ErrorDecoder。我究竟做错了什么?Bean 正在实例化,我的 CustomErrorDecoder 如下所示:


更新:

我在这个 git 仓库. 请查看提交历史以找到我尝试过的 3 种方法。

0 投票
1 回答
270 浏览

spring-cloud-sleuth - 我如何在 Spring Boot 2 中使用 Sleuth Span

尝试从 spring boot 1 升级到 2,我面临的问题是跟踪

在 spring boot 1 中,我们使用了在 spring boot 2 中似乎已弃用的 sleuth Trace,并建议使用“brave”。

其中一个问题是我们的另一个微服务正在使用spring boot 1,我如何在spring boot 2中携带Span?它已被弃用。

我尝试使用 sleuth 旧版本,但遇到冲突和 spring 应用程序无法启动

0 投票
1 回答
276 浏览

resilience4j - 未使用 CompletableFuture 执行服务

我一直在尝试使用 Resilience4j + OpenFeign 来调用服务。当我收到错误时,超时工作正常,但是,如果成功,它总是返回null,我找不到原因。有人可以帮我吗?

创建构建器:

使用 RateLimiter 获得 CompletableFuture:

调用服务并始终获得null结果:

API 正在返回一些东西,但是,我无法以这种方式工作。有什么我在这里想念的吗?

我正在使用以下版本:

提前致谢。

0 投票
0 回答
442 浏览

spring-cloud - 如何为在 SAME Eureka 服务下注册的每个实例配置单独的弹性 4j 断路器

这是我的场景:

Eureka Server: MY-APP-SERVICE,在 localhost:8080、localhost:8081 和 localhost:8082 上运行 3 个相同的 Spring Boot 应用程序实例

OpenFeign 客户端(注解如下)

我有一个代理控制器,例如 MyAppServiceClientController 如下:

当 FeignClient 向 Eureka 注册中心询问服务 MY-APP-SERVICE 时,它会获得所有 3 个实例;似乎resilience4j在服务级别只有1个断路器,这里是MY-APP-SERVICE。

如何配置/注释我的 FeignClient 为我的 MY-APP-SERVICE 中的每个实例/URL 有一个单独的弹性 4j 断路器?

0 投票
2 回答
8288 浏览

java - 如何在 POST 请求中使用附加的 @RequestBody 将 Pageable 传递给 Feign 客户端

我试图在 Spring 中为我的 REST 服务控制器创建一个 feign 客户端。

客户端看起来像这样:

运行测试时抛出以下异常:

引起:java.lang.IllegalStateException: Method has too many Body parameters: public abstract org.springframework.data.domain.Page com.foo.bar.jobservice.client.MeasureServiceClient.searchMeasures(java.lang.String,com.example .foo.jobservice.client.dto.MeasureDto,org.springframework.data.domain.Pageable)

我已经知道/尝试过的:

github上有一个已关闭的issue:https ://github.com/spring-cloud/spring-cloud-netflix/issues/556

应该解决问题的提交的问题:

https://github.com/spring-cloud/spring-cloud-openfeign/issues/26

提交:

https://github.com/spring-cloud/spring-cloud-openfeign/commit/6e0e63644ba34193f03c2cd74391cac73b9bfdb4

我配置了什么:

还是行不通。

我正在使用什么:

我究竟做错了什么?


更新:

我创建了一个可重现的示例:

https://github.com/manuelwaltschek/mre.git

启动客户端服务或调用 spring/spring-cloud-openfeign/375-pageable-not-working/parent/client/src/test/java/com/example/client/HelloServiceClientTest.java

github上的未解决问题: https ://github.com/spring-cloud/spring-cloud-openfeign/issues/375 https://github.com/spring-cloud/spring-cloud-openfeign/issues/385

编辑:基本上我想知道如何将 pageable 传递给 feign 客户端。也许在 url 参数中对其进行编码?

相关问题:如何将 Spring Pageable 传递给 FeignClient

0 投票
0 回答
914 浏览

java - OpenAPI Generator:为下载二进制文件生成正确的方法配置文件

我有一个 Swagger 文件 (OAS 2),其端点用于下载文件。我正在使用 openapi-generator(通过 Maven 插件)来生成 Java / OpenFeign 客户端代码。

问题是这个特定的端点转换为:

null调用时返回。据此正确的方法配置文件应该是:

事实上,如果我自己编写接口,我可以使用这种方法:

所以问题是:如何配置生成器以使用Response此端点的类型?

我努力了:

但这会将Filetype替换为Response任何地方,包括在我不想要的其他端点中,特别是(猜猜是什么)上传端点,它生成为:

并且像这样工作正常。

这是 Swagger 文件的相关部分:

0 投票
1 回答
585 浏览

java - 使用 openfeign 的多个表单数据

我尝试使用 spring openfeign在表单数据中定义多个参数

(版本 2.1.9.RELEASE)

这是方法

但是在启动服务时出现以下异常:

0 投票
0 回答
320 浏览

spring - Spring Cloud Open Feign:从 gzip 响应正文中剥离的换行符“\n”

在 Spring Cloud Open Feign 中使用响应压缩配置(如下所示)时,从gzip响应正文中删除了换行符(“\n”或“\r”)。没有引发错误。换行符只是被空字符串“”替换。响应具有正确的“content-encoding: gzip”标头和格式良好的 gzip 压缩正文内容。

有人有线索吗?当我在这里打开spring-cloud-openfeign/issue400 时,这对我来说似乎是个问题

SpringCloudFeignClient.java

应用程序测试.java:

引导程序.yml:

版本:

完整项目在这里: https ://github.com/spring-cloud/spring-cloud-openfeign/files/5147346/spring-cloud-feign-gzip.zip

0 投票
0 回答
53 浏览

spring - Feign + Eureka 没有springboot

我需要使用spring 应用程序中的FeignEureka来调用在 Eureka 服务器上注册的微服务。

这里的OpenFeign github 页面我发现了如何在 spring 中使用 feign。

我在任何地方都找不到如何在春天一起使用 Eureka 和 Feign

如何在没有 springboot的情况下将 Eureka 服务发现与 Feign 一起使用?

0 投票
5 回答
15237 浏览

java - java.lang.IllegalStateException:没有定义负载平衡的假装客户端。您是否忘记包含 spring-cloud-starter-netflix-ribbon?

我得到了例外:

在执行我的项目时。我的 pom.xml 包含

我也在我的其他项目中使用 feign 客户端,没有任何额外的功能区依赖,这些都使用相同的 spring-boot 版本 2.0.8

我已经针对相同的问题引用了其他堆栈溢出链接,他们要求添加功能区的其他依赖项。我尝试在我的 pom.xml 中添加相同的内容,但没有帮助。

FeignClient 接口是,

主类代码:

我正在使用 Sprint Boot 版本 2.0.8。