问题标签 [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 投票
1 回答
3325 浏览

java - 假装不编码参数

我正在重构遗留代码库以使用 Feign,但我遇到了一些问题:

  1. 没有任何 Feign 日志语句被打印到控制台

    • 尽管使用记录器和完整日志级别进行实例化
  2. Feign 没有编码我的 reservationSearch 参数

    • 假装只是POST_toStringObject

假装定义:

Feign 实例化

参数类型(不要杀了我,不是我的代码):

预订搜索参数:

0 投票
0 回答
347 浏览

java - Feign 客户端预先设置 HTTP

我在 Eureka 和 Zuul 的微服务项目中使用 Spring Cloud。我想使用 Feign 客户端在我的微服务之间进行通信。假设我有一个微服务Microservice1Microservice2。此外,我还有 Eureka 微服务和 Zuul 微服务。

Zuul 配置如下:

在我的 Microservice2 中,我有以下 Feign 客户端:

我的问题如下:我希望 feign 客户端通过例如 localhost:8080/microservice1/test/this_is_a_test 调用我的 REST 服务。相反,它调用“ http://microservice1/test/this_is_a_test ”。我不想使用 url 属性手动配置 feign 客户端 - 它在其他应用程序中自动运行,但不适用于此特定配置。有人可以在这里帮助我吗?

编辑

尤里卡仪表板:

在此处输入图像描述

0 投票
1 回答
995 浏览

spring-boot - spring-cloud feign 文件上传

我正在尝试在 spring-boot 应用程序中使用 feign 客户端上传文件。我想用以下条件设置编码器:

我无法在默认编码器上再次委托控制。有人可以帮我找出解决方案。我将不胜感激。

在此先感谢并为我糟糕的英语感到抱歉;)

0 投票
2 回答
2391 浏览

java - FeignClient 名称占位符

我有一个 FeignClient 接口,我想从我的application.yml文件中加载一个名称,所以我这样做了:

在我的yml文件中:

但我在运行时遇到异常:

java.lang.IllegalStateException: org.springframework.util.Assert.state(Assert.java:70) 的服务 id 不是合法主机名 (${edgeServer}) ~[spring-core-4.3.10.RELEASE.jar:4.3. 10.RELEASE] 在 org.springframework.cloud.netflix.feign.FeignClientsRegistrar.getName(FeignClientsRegistrar.java:238) ~[spring-cloud-netflix-core-1.3.1.RELEASE.jar:1.3.1.RELEASE] 在org.springframework.cloud.netflix.feign.FeignClientsRegistrar.registerFeignClient(FeignClientsRegistrar.java:181) ~[spring-cloud-netflix-core-1.3.1.RELEASE.jar:1.3.1.RELEASE] at org.springframework.cloud .netflix.feign.FeignClientsRegistrar.registerFeignClients(FeignClientsRegistrar.java:167) ~[spring-cloud-netflix-core-1.3.1.RELEASE.jar:1.3.1.RELEASE] at org.springframework.cloud.netflix.feign。 FeignClientsRegistrar.registerBeanDefinitions(FeignClientsRegistrar.java:92) ~[spring-cloud-netflix-core-1.3.1.RELEASE.jar:1.3.1.RELEASE] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:359) ~[spring-context -4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:143) ~[spring-context-4.3.10.RELEASE.jar:4.3. 10.RELEASE] 在 org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:116) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.context。注释.ConfigurationClassPostProcessor。processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:320)~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228)~[spring -context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:270) ~[spring-context-4.3.10.RELEASE.jar: 4.3.10.RELEASE] 在 org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] 在 org.springframework。 context.support.AbstractApplicationContext。invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:687) ~[spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:525) ~[spring -context-4.3.10.RELEASE.jar:4.3.10.RELEASE]

那么这个问题有什么解决方案,否则我怎样才能让我的 name 属性从我的 yml 属性中注入?

谢谢

0 投票
2 回答
8590 浏览

java - 使用 feign 的表单中的 Multipartfile

我在使用 feign 上传图片时遇到问题。我有多个使用 Spring Cloud 的服务。下面是我的依赖项的版本

在我的表单中,我有一个 Multipartfile ex 下面的字段

并将它传递给我的假客户

我已经在我的代码中添加了一个 SpringFormEncoder,但是我检查了编码器的代码,但是当 Multipartfile 包含在 RequestBody 中时,它似乎不支持。

我已经看到您可以在下面的链接中传递多个@RequestPart,但我似乎无法使其工作。我收到一个错误,它说我正在传递多个正文参数。

https://github.com/bilak/spring-multipart-feign-poc/blob/master/src/main/java/com/github/bilak/poc/ContentClient.java

0 投票
1 回答
2803 浏览

jackson - Kotlin 数据类 Jackson @JsonProperty 不兑现

我正在使用 Kotlin 数据类将 Feign 连接到 POST。

我调用的 API 需要 {..."brandInfo":{"TPID":1}...}

我的理解是,如果没有正确获取 jackson-module-kotlin 依赖项,Feign 将根本无法发布,因为 Jackson 编码将彻底失败。

但是,Feign 能够发布,Jackson 能够编码,但无论我做什么,发布的是 {..."brandInfo":{"tpid":1}...},尽管 brandInfo val使用@JsonProperty("TPID") 进行注释。

我错过了什么?

0 投票
1 回答
668 浏览

spring - 使用具有后备行为的 Spring FeignClient

我有一个问题要使用 Spring FeignClient 解决。

我有两个端点来发送短信,两者都是相同的行为:

  • 当我发送包含所需的所有查询参数的 GET 时,服务会发送 SMS。
  • 但是我需要检查端点 A 是否关闭——在这种情况下,我必须发送到端点 B,两者都具有相同的请求路径和有效负载。

我怎么解决这个问题?

今天我有一个带有 FeignClient 注解的界面,只有一个 URL。
我尝试使用 FeignBuilder 在运行时创建请求并更改 URL 但没有成功。

如何使用 Feign 控制客户端的服务回退,例如:

0 投票
1 回答
3248 浏览

java - 更新到 Spring Boot 1.5.8 和 Finchley/Edgware Spring Cloud 后 Feign Exception 403

我对微服务比较陌生,我一直在尝试使用这个概念验证应用程序,它使用Spring BootSpring Cloud.

问题是,虽然应用程序在Spring Boot 1.3.5和上运行良好Spring Cloud Brixton.RELEASE,但在升级其中任何一个时都会中断。

注册新帐户时发生错误,并给出以下错误:

和堆栈跟踪:

由于这似乎是一个 Feign 错误,并且AuthServiceClient.java似乎是罪魁祸首,所以我将其包括在此处:

由于代码没有任何更改,我不明白可能是什么原因以及如何解决此错误。

0 投票
1 回答
2189 浏览

spring-boot - 在 Spring Boot 中无法通过 RestTemplate 和 Eureka 使用 REST API

我可以在我的应用程序中REST API通过Feign但不能通过。RestTemplateSpring Boot

我的项目中有以下 Maven 模块。

greeting-service能够毫无问题地向 Eureka 注册自己,并且我能够通过客户端使用该服务Feign。但是,当我添加代码以通过RestTemplate. 请参阅下面的屏幕截图。

在此处输入图像描述

服务器启动时出错(问候客户端)

GreetingClientApplication.java

问候客户端/pom.xml

问候客户端/application.yml

问候服务/pom.xml

问候服务/application.yml

问候服务应用程序.java

尤里卡服务器/pom.xml

EurekaServerApplication.java

rest-client-sample/pom.xml(主聚合器 pom)

0 投票
1 回答
735 浏览

json - 我正在尝试使用 feign 发布 json 字符串

我正在尝试使用 feign 发布一个 json,但我从 url 中收到一个错误,即未发送参数。这是我的代码:

错误:feign.FeignException:读取 MyApiClient#postRecurringPayment(String) 的状态 400;内容: {"errors":{"recurring_application_charge":"必需参数丢失或无效"}} at feign.FeignException.errorStatus(FeignException.java:62) at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:91 ) 在 feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:126) 在 feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:74) 在 feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:94) 在 com.sun.proxy.$ sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 的 sun.reflect.NativeMethodAccessorImpl 的 com.test.TestOauth.testShopifyProducts2(TestOauth.java:49) 的 Proxy4.postRecurringPayment(Unknown Source)。