问题标签 [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 回答
12042 浏览

spring-boot - Feign - URL 编码路径参数

这是我的合同,

我想获取 id = "a/b" 的产品,

如果我将此作为参数发送到getProduct("a/b")

然后形成的 URL 是http://api/products/a/b,我得到一个 404 而不是 url 应该是http://api/products/a%2Fb

有没有解决的办法?

0 投票
1 回答
1082 浏览

java - 如何使用 Feign 框架将 URL 参数添加为 JSON?

我做了一个rest客户端,使用feign框架,如下:

这会导致这样的结果:

http://www.example.com/event?actid=1234&key=1234&event=cool_event&visit= {email=someone@hosting.com}

我想要的是'visit'参数是一个json,像这样:

http://www.example.com/event?actid=1234&key=1234&event=cool_event&visit= {"email":"someone@hosting.com"}

谁知道如何做到这一点?

0 投票
0 回答
528 浏览

hystrix - Hystrix feign fallback 中的异常(原因)始终为空

我在 FallBackFactory 中发现异常原因时遇到问题,我的是一个旧应用程序,所以我不能使用 Spring Cloud 方法(带有注释等)

我找到了以下解决方案,但仍然不适合我: 在 HystrixFeign 客户端回退中获取原因的问题

这是我的代码:

实例创建:

ProfileProxyErrorDecoder 类中添加了一个记录器,但是在日志中找不到该记录器。我可以在服务器日志中看到 com.netflix.hystrix.exception.HystrixRuntimeException

有人可以指出我哪里出错了吗?

0 投票
3 回答
4261 浏览

java - 使用 @Configuration bean 覆盖 @FeignClient 进行测试

是否可以通过仅创建一个包含用于测试的模拟版本的bean 来覆盖通过@FeignClient注释创建的bean?@Configuration

我已经尝试过了,但似乎@FeignClientbean 是最后创建的(或者我认为),因为在我的测试中,我总是注入真实版本而不是模拟版本。在同一个配置文件中,我创建了另一个没有任何注释(除了@Component)的 bean,仅使用真实的名称以相同的方式模拟,并且它运行良好。

我尝试过使用@MockBean它来模拟它并且它可以工作,但是该项目有一些怪癖,这使得创建另一个 Spring 上下文会破坏测试。

谢谢。

编辑。实际上,我只是调试了测试并意识到,如果我使用与 Feign 客户端相同的名称,调试器甚至不会停止在@Configurationbean 中创建模拟版本。将名称更改为它可以工作的其他名称,但它只是使用新名称创建另一个相同类型的 bean。我在这里缺少任何配置吗?

编辑 2. 这是一个示例代码。执行这个我有BarService一个模拟版本,但FooService它是真实的。

0 投票
1 回答
2062 浏览

java - 如何为 feign bean 字段设置 JsonProperty 名称

我需要为这个 json 对象创建一个 bean。

我的java类是这样的。

是否有任何注释可以映射usernameuser_name而不将字段名称更改为user_name?像@JsonProperty(name="user_name")什么?

0 投票
1 回答
947 浏览

java - Feign 客户端:长在地图中解码为整数

然后

服务器发送带有如下正文的响应:

但是 myNewItemWithId.get("id"); 的值 是 2147483647,Integer 的最大值。

有没有办法告诉 GsonDecoder 将整数解码为 Long ?

0 投票
1 回答
3352 浏览

java - Spring服务在使用feign客户端时返回内容为空

创建了一个 ui 应用程序来测试我的服务。UI 与 FooServiceUI 有关系。FooServiceUI 使用 feign 客户端向 BarServiceAccessor 发送请求(在 fooserviceui 作为接口实现)。但是假装客户端返回这样的响应;

当我直接向 BarService 发送请求时,我可以看到所有这些数据。

FooService getAll 方法;

存取器;

BarService 代码看起来像;

我已经尝试将 spring jpa 添加到客户端服务的 gradle 并且还尝试根据使用流 api 集合更改映射但仍然不起作用。

使用 _embedded 行序列化作为响应时,可能有些东西不能正常工作?

0 投票
1 回答
3345 浏览

http-post - 如何在没有请求正文和查询参数的情况下发出 Feign POST 请求?

我将 Feign 与Apache Http 客户端一起使用,我想支持以下 jax-rs 接口:

但是,ApacheHttpClient使用RequestBuilder,它将没有正文/实体的请求的查询参数转换为 UrlEncodedFormEntity。

我正在将我的 API 转换为 jax-rs,并且我不想破坏向后兼容性。有没有办法在不调整我的 API 的情况下使用 Feign?OkHttp 或 Ribbon 客户端是否支持带有查询参数且没有正文/实体的 POST?是否有另一个支持此功能的 java jax-rs 客户端?

此外,RequestBuilder 将查询参数转换为 UrlEncodedFormEntity 是否有原因?apache-httpclient 库中是否有替代的 HttpUriRequest 构建器不执行此操作?RequestBuilder 的 build 方法有以下几行代码:

在切换到 Feign 之前,我的代码构造了一个 HttpUriRequest,其内容类似于以下内容:

0 投票
0 回答
212 浏览

junit - 使用 Zookeeper 的 Feign 使用普通应用程序成功,但使用 JUnit 失败

我使用 zookeeper 作为服务寄存器,这就是我的问题:当我直接将它作为 spring boot 应用程序运行时,它会成功,而不是当我使用 junit 对其进行测试时,它会失败。

pom依赖如下:

Feign代码如下:

运行代码如下:

junit代码如下:

例外情况如下:

0 投票
1 回答
3622 浏览

java - 将自定义 feign 客户端注入 Spring Application

我目前正在尝试同时掌握 Spring 和 Feign。直截了当:我正在努力修改这个项目中的@FeignClient: Walery的Feign Hello World, 以便代替

维基数据客户端

使用类似于此处找到的 @Autowired 表示法:名为:手动创建 Feign 客户端的部分

这样做的目的是稍后注入自定义解码器和编码器。我已经用它进行了一段时间的实验,但我设法实现的只是毁了整个事情。

我从这里和那里收集了一些线索,并设法达到了我创建配置类的地步:

FeignConfig

修改的

维基数据客户端

界面略

并尝试改用上述类

WikidataRunner

我得到的只是不同类型的 Bean 错误

2017-07-19 08:02:29.056 错误 2018 --- 线程“主”org.springframework.beans.factory.UnsatisfiedDependencyException 中的异常:创建文件 [/home/mibi/IdeaProjects/ 中定义的名称为“wikidataRunner”的 bean 时出错FUFEign/feign-helloworld/target/classes/codes/walery/research/feign/wikidata/WikidataRunner.class]:通过构造函数参数表示的不满足的依赖关系,类型为[codes.walery.research.feign.wikidata.WikidataClient]: :没有为依赖找到类型 [codes.walery.research.feign.wikidata.WikidataClient] 的合格 bean:预计至少有 1 个 bean 有资格作为此依赖的自动装配候选者。依赖注解:{}; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [codes.walery.research.feign. wikidata.WikidataClient] 找到依赖项:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{} [
预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注释:{} at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) at org. springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1326) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory $1.getObject(AbstractBeanFactory.java:305) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 在 org. springframework.boot.SpringApplication.run(SpringApplication.java:969) at codes.walery.research.feign.FeignHelloworldApplication.main(FeignHelloworldApplication.java:12) 包装:org.springframework.beans.factory.UnsatisfiedDependencyException:创建 bean 时出错在文件 [/home/mibi/IdeaProjects/FUFEign/feign-helloworld/target/classes/codes/walery/research/feign/wikidata/WikidataRunner.class] 中定义的名称“wikidataRunner”:通过索引为 0 的构造函数参数表示的不满足的依赖关系类型 [codes.walery.research.feign.wikidata.WikidataClient]: : 找不到类型为 [codes.walery.research.feign.wikidata.WikidataClient] 的合格 bean 依赖项:预计至少有 1 个符合自动装配候选资格的 bean依赖。依赖注解:{}; 嵌套异常是 org. springframework.beans.factory.NoSuchBeanDefinitionException:没有找到符合条件的 bean [codes.walery.research.feign.wikidata.WikidataClient] 依赖项:预计至少 1 个原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有符合条件的 bean找到类型 [codes.walery.research.feign.wikidata.WikidataClient] 的依赖项:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖项注释: org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1326) 中的 {} 有资格作为此依赖项的自动装配候选者。依赖注释:{} at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory. FeignHelloworldApplication.main(FeignHelloworldApplication.java:12) [classes/:na] 2017-07-19 08:02:29.059 INFO 2018 --- [Thread-1] scaAnnotationConfigApplicationContext:关闭 org.springframework.context.annotation.AnnotationConfigApplicationContext@3d8314f0 : 启动日期 [Wed Jul 19 08:02:24 CEST 2017]; 上下文层次的根

进程以退出代码 1 结束

我不会否认自己是 Spring 和 Feign 的新手。事情是我需要拼命地理解这两个。到目前为止,我已经花了 10 多个小时研究 Feign 无济于事。

请寻求帮助和指导

缺少括号