问题标签 [netflix-feign]

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 投票
2 回答
562 浏览

java - 我可以告诉 gradle 两个不同的依赖模块实际上是相同的,并让它选择版本最高的那个吗?

我有一个依赖于 Netflix Feign 和 Glassfish Jersey 实现的项目。

Feign 使用 JAX-RS (JSR 311) 的 1.1 规范,glassfish jersey 实现使用 2.0 规范。2.0 是向后兼容的,但Gradle 依赖名称已更改

因此,我的项目中有两个依赖项:

  • javax.ws.rs:jsr311-api:1.1.1
  • javax.ws.rs:javax-ws-rs-api:2.0.1

两者都在相同的包中实现相同的类,但一个根据 1.x,一个根据 2.x

在我的 Java 代码中,我只能指出类名和包。

我可以告诉 Gradle 这实际上是同一个包,尽管名称不同,并且只能在类路径中获得一组实现类吗?

现在,JVM 和编译器选择哪个版本的类是随机的。有时它不编译,有时它编译但不运行(MethodNotFoundException)。

0 投票
0 回答
2240 浏览

spring-cloud - 如何让自定义的ErrorDecoder和@ExceptionHandler在spring cloud中协同工作

我有一个名为“hr”的spring云服务,以及一个使用Feign作为客户端调用hr服务的api网关服务。如果 hr 服务发生任何异常,它会返回一个类型为 .json 的 json 消息ResponseEntity<ServiceException>ServiceException就像:

在 api 网关服务中,我自定义了feign.codec.ErrorDecoder类似的内容:

获取 ServiceException 可以正常工作,并且我可以得到如下错误消息:

我想更改错误消息的格式,至少添加类的errorCode字段ServiceException,所以我添加了一个@ControllerAdvice注释类来尝试处理异常。但不幸的是,它不起作用。我可能是因为控制器没有通过某些过滤器抛出异常,所以@ControllerAdvice注释不起作用。

有人可以给我一些关于案例的建议吗?

0 投票
1 回答
263 浏览

java - 将 feign 目标绑定到 guice

有没有办法将假目标绑定到guice?我的用例如下:

  1. 我有一个服务,它可以在同一个 JVM 中启动,也可以作为单独的服务启动。
  2. 如果服务是在同一个 JVM 中启动的,那么我将使用 Guice 绑定它。
  3. 如果服务是在 jvm 之外启动的,我想使用 fiegn 绑定服务并让 guice 注入相同的内容。
0 投票
3 回答
40845 浏览

rest - 无法让 Feign Client 为基本示例工作

无法让 Feign Client 工作。首先尝试使用 POST。不断遇到与编码器/解码器相关的错误,说类型不正确。然后在github上找到了一个调用简单GET API的例子,决定试一试。仍然失败

在 Github 和在线上,我看到多个版本的 Feign Client Spring-Cloud、OpenFeign、Netflix.feign 有不同的版本。谁能描述一个应该用于生产的最好和稳定的 Feign 客户端是什么?

应用:

尝试了所有可能的注释排列,认为它可以解决 AutoWire 的问题,但仍然失败

2016-07-20 18:15:42.406[0;39m [31mERROR[0;39m [35m32749[0;39m [2m---[0;39m [2m[主][0;39m [36mo.s.boot .SpringApplication [0;39m [2m:[0;39m 应用程序启动失败

org.springframework.beans.factory.BeanCreationException:创建名为“testWLCController”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 com.paa.controllers.GetFeignClient com.paa.controllers.TestWLCController.gfClient;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为“com.aa..controllers.GetFeignClient”的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 java.lang.NullPointerException at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] at组织。run(SpringApplication.java:1180) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] at com.paa.ServiceApplication.main(ServiceApplication.java:44) [bin/:na] 由:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有com.paa.controllers.GetFeignClient com.paa.controllers.TestWLCController.gfClient;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为“com.paa.controllers.GetFeignClient”的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 java.lang.NullPointerException 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE ] 在 org.springframework.beans。

0 投票
0 回答
360 浏览

spring-security-oauth2 - 特定 FeignClient 的 RequestIntercepor

我有一个 RequestInterceptor,我在其中自动将 OAuth2ClientContext 中的 AccessToken 复制到 RequestTemplate 的标头中,以便内部服务使用来自启动场景的移动设备的相同 AccessToken 无缝地相互调用。这就是我们管理服务方法授权的方式。这是拦截器代码:

这是@Beans 配置:

问题是有不同的 FeignClients,其中一部分用于 3rd 方服务,例如我们用于 SMS 文本的服务,我不想在那里发送 AccessToken。

我如何在 RequestInterceptor 内部确定它来自什么 FeignClient?

0 投票
1 回答
667 浏览

spring-cloud - 查询值包含 `{aa%` 导致 feign 返回 http 状态码 400

我在 spring-cloud 中使用 feign,我遇到了问题。

这是我的假客户定义。

此调用将返回状态码 400 。

然后我查看了代码,我在 RequestTemplate 类中找到了这段代码:

encodeIfNotVariable在 query(String name, String... values) 中调用的方法。

这意味着如果值包含{and 在 first 中,则该值不能被编码。

我怎样才能解决这个问题?

0 投票
1 回答
4682 浏览

java - 不支持 Netflix Feign 内容类型 'application/json;charset=UTF-8'

我正在使用Netflix Feign 制作我的 java http 客户端,使用这样的客户端:

我收到一个奇怪的错误

消息说“内容类型'应用程序/json;charset = UTF-8'不支持”但我使用的MediaType.APPLICATION_JSON_UTF8_VALUE是Spring,其值为

应用程序/json;charset=UTF-8

有谁知道发生了什么?

0 投票
2 回答
12283 浏览

java - 获取标题 feign netflix

我正在使用netflix feign来传达微服务。

因此,我的微服务 A 有一个操作“OperationA”,由微服务 B 使用,它通过名为 X-Total 的标头将一个参数传递给 B

我的客户端界面如下:

然后我得到了 dto 的列表,但我不知道如何获取标题 X-TOTAL 参数:

如何获取标题参数?

0 投票
4 回答
3325 浏览

netflix-feign - Feign 是线程安全的吗……?

Feign线程的实例是否安全......?我找不到任何支持这一点的文档。外面有人不这么认为吗?

这是在 github repo 上发布的 Feign 的标准示例...

我应该将其更改为以下...是否线程安全...?

对于上面的示例...我使用基于弹簧的组件来突出显示单例。提前致谢...

0 投票
1 回答
365 浏览

spring-cloud-netflix - spring-cloud - 仅带有 Ribbon 的 Hystrix 流

spring-boot-starter-actuator使用 Ribbon/Feign 客户端的 Web 应用程序中,不启用 hystrix 流/端点。

HystrixCircuitBreakerConfiguration.HystrixWebConfiguration即使条件为真,也不会激活。

如何为 Feign/Ribbon 启用 hystrix 流?

环境:Spring Boot 1.3.5.RELEASE,Spring Cloud Brixton.SR4