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

spring-cloud - html http请求中如何支持Feign?

Feign 现在使用 Eureka 做负载均衡,现在我想调用 Eureka 系统之外的调用。比如我想在一个html请求中调用一个url,不使用nginx转发,如何使用Feign来支持负载均衡呢?

0 投票
1 回答
3095 浏览

spring-boot - Feign 客户端忽略请求参数

我创建了Feign Client

在控制器中,我被写到:

Applicaton.yml这样看:

当我尝试获得一些结果时,作为回报,我得到 404 错误:

在这种情况下,我在调试器中看到他feign没有设置我的geoParam

在此处输入图像描述

为什么会发生这种情况以及如何解决这个问题?

0 投票
1 回答
102 浏览

java - Feign with Ribbon: 重置

我们正在尝试在我们的一个项目中使用 Feign + Ribbon。在生产代码中,我们没有问题,但在 JUnit 测试中我们有一些问题。

我们正在尝试模拟多种情况(服务失败、正常运行、异常等),因此我们需要在集成测试中多次配置 Ribbon。不幸的是,我们注意到即使我们销毁 Spring 上下文,部分状态可能仍然存在于静态变量中的某个地方(例如:新测试仍然连接到以前套件中的平衡器)。

有什么推荐的方法,如何清除这两个工具的静态状态?(类似Hystrix.reset()

提前致谢!


我们尝试在每个套件之后重置 JVM - 它运行良好,但不是很实用(我们必须在 Gradle 和 Idea 中设置它(因为 Idea 测试调谐器不支持开箱即用))。我们还尝试在测试之间重命名服务 - 这可以说是 99%(它有时会由于某种原因失败......)。

0 投票
1 回答
1868 浏览

microservices - 当使用 feign 客户端调用 rest 调用失败时,不会调用 fallback 方法

我正在尝试通过使用 Feign 客户端来实现回退,但没有成功。它是最简单的代码,请在下面找到。

主班

假装界面

后备类

在休息客户端中出现错误,但不是来自回退方法

“时间戳”:1501950134118,“状态”:500,“错误”:“内部服务器错误”,“异常”:“java.lang.RuntimeException”,“消息”:“com.netflix.client.ClientException:负载均衡器没有没有可用的客户端服务器:client22",

为了获得回退方法消息,我传递了 eureka 服务器中不存在的 client22 eureka id。我在 pom 中有 stater-feign。有人可以调查一下吗。

0 投票
1 回答
2061 浏览

swagger - 如何使用 swagger codegen 为动态 feign basePath 生成 URI 参数?

我有一个非常简单的问题:)

根据 feign 文档,他们支持通过 api 函数传递 URI 参数来动态更改 feign 客户端对象的 basePath,如下所示

好的例子:

问题是我正在使用 swagger,它从 yaml 文件生成我的 API 并将 @Param 注释添加到所有函数参数,这对我不利。

不好的例子:

有没有办法让 swagger 生成器生成带有 URI 参数的 API,而不需要 @Param 注释?

期望的结果示例:

0 投票
2 回答
3015 浏览

java - 使用 Feign 客户端和证书调用 WS

我正在为基本的接缝而苦苦挣扎,但无法理解它。我有一个 spring boot 应用程序,它应该公开一个 rest url。

我这样做是这样的:

正如你所看到的,它消耗了我试图用一个 feign 客户端实现的另一个服务:

界面如下:

当 MdmhClient 确实给我mdmhClient.getEntity()打电话时的异常时:

我知道要解决这个问题,我需要将证书导入 jre。我正在运行 Intellij IDE 并将我的项目的 jdk 路径设置为:

我还通过firefox访问了webservice:

并下载了我导入的证书:

但我仍然得到错误。出于沮丧,我将证书导入所有已安装的 jdks,仍然相同。

我发现:https ://github.com/OpenFeign/feign/blob/master/core/src/test/java/feign/client/TrustingSSLSocketFactory.java

并将其添加到我的 MdmhClient 中,例如:

在此之后,我从被调用的服务中收到了 AccessDenied 响应。

但我 100% 确定我不需要身份验证。因为我可以在不修改标题的情况下将 URL 输入浏览器并获得结果。

我希望你能帮助我或给我一些提示如何解决这个问题。

谢谢

0 投票
1 回答
561 浏览

spring-boot - 图像被 Spring 和 Feign Client 损坏

我很抱歉我的英语不好:(

我想用 Feign Client 上传图片文件,但是图片在服务器应用程序上损坏了。

与客户端应用程序和服务器应用程序一起保存的相同图像。但结果如下:

https://i.stack.imgur.com/xbiPS.png

怎么了?请帮我。

0 投票
1 回答
3735 浏览

oauth - Feign Oauth如何手动设置不记名令牌值?

我正在开发一个 Rest API,MyApi。在那里,我使用 Feign(和 swagger codegen)为另一个 API 生成客户端,我们称之为 Ext-API。

用户之前将调用过 Ext-API 并且除其他外将检索到 JWT 令牌。然后,他将使用 Basic Auth 调用我的 API,并在正文中为我提供 JWT 令牌。

我将使用这个 JWT 令牌作为身份验证标头从我的 API 连接到 Ext-API 并代表用户执行更多操作。

然而,Oauth 和 Feign 示例的所有示例都依赖于 Oauth,也用于使用生成的客户端连接到 API。

我找不到如何在每次请求时更新 Oauth 令牌。假装没有任何东西可以做到这一点。Atm 我正在使用常规的 Rest 模板。

0 投票
1 回答
450 浏览

java - 位于 JAR 中的自动装配 Feign 接口

我有一个AttachmentApi服务类,它使用feign interface位于JAR我用作依赖项的文件中的两者client microservice
controller客户端微服务使用该AttachmentApi服务从数据库获取数据。
当我访问该控制器的某个端点时,AttachmentApi 服务已成功自动连接,但 feign 接口没有,它给了我以下异常:

null 是由于没有自动装配的 feign 接口!

知道我在 springboot 类中使用了以下注释

任何建议将不胜感激谢谢!

更新 1

Feign 接口(位于 JAR 依赖项中)

}

AttachmentApi(也位于 JAR 依赖项中)

}

注意:我的客户端微服务无法自动装配位于 JAR 依赖项中的任何 bean(既不是 Feign 接口也不是 AttachmentApi 类)!

0 投票
3 回答
13636 浏览

java - 文件上传spring cloud feign客户端

当使用 spring cloud netflix 的 feign 客户端从一个微服务向另一个微服务发出 post 请求时,我在 Postman 中收到以下错误:

我的 Eclipse 控制台显示以下异常:

com.fasterxml.jackson.databind.JsonMappingException:没有为类 java.io.FileDescriptor 找到序列化程序,也没有发现用于创建 BeanSerializer 的属性(为避免异常,请禁用 SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过参考链:org.springframework.web.multipart。 support.StandardMultipartHttpServletRequest$StandardMultipartFile["inputStream"]->java.io.FileInputStream["fd"]) at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:284) ~[jackson-databind-2.8. 9.jar:2.8.9] 在 com.fasterxml.jackson.databind.SerializerProvider.mappingException(SerializerProvider.java:1110) ~[jackson-databind-2.8.9.jar:2.8.9] 在 com.fasterxml.jackson。 databind.SerializerProvider.reportMappingProblem(SerializerProvider.java:1135) ~[jackson-databind-2.8.9.jar:2.8.9] 在 com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:69) ~[jackson-databind-2.8.9.jar:2.8.9] 在 com.fasterxml.jackson.databind。 ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:32) ~[jackson-databind-2.8.9.jar:2.8.9] at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704 ) ~[jackson-databind-2.8.9.jar:2.8.9] at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689) ~[jackson-databind-2.8.9. jar:2.8.9] 在 com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) ~[jackson-databind-2.8.9.jar:2.8.9] 在 com.fasterxml.jackson。 databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:704) ~[jackson-databind-2.8.9.jar:2.8.9] 在 com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689) ~[jackson-databind-2.8.9.jar:2.8.9] 在 com.fasterxml.jackson.databind。 ser.BeanSerializer.serialize(BeanSerializer.java:155) ~[jackson-databind-2.8.9.jar:2.8.9] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:292) ~ [jackson-databind-2.8.9.jar:2.8.9] 在 com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1429) ~[jackson-databind-2.8.9.jar:2.8。 9] 在 com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:951) ~[jackson-databind-2.8.9.jar:2.8.9]jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) ~[jackson-databind-2.8.9.jar:2.8.9] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java :292) ~[jackson-databind-2.8.9.jar:2.8.9] at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1429) ~[jackson-databind-2.8.9。 jar:2.8.9] 在 com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:951) ~[jackson-databind-2.8.9.jar:2.8.9]jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) ~[jackson-databind-2.8.9.jar:2.8.9] at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java :292) ~[jackson-databind-2.8.9.jar:2.8.9] at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1429) ~[jackson-databind-2.8.9。 jar:2.8.9] 在 com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:951) ~[jackson-databind-2.8.9.jar:2.8.9]序列化(ObjectWriter.java:1429)~[jackson-databind-2.8.9.jar:2.8.9] at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:951)~[jackson-databind-2.8 .9.jar:2.8.9]序列化(ObjectWriter.java:1429)~[jackson-databind-2.8.9.jar:2.8.9] at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:951)~[jackson-databind-2.8 .9.jar:2.8.9]

更新 1

这是我的假装界面:

这是主要的微服务控制器:

我当然在这里缺少某种序列化程序
任何建议将不胜感激!
谢谢