【问题标题】:How ignore not annoted methods using OpenFeign SpringMvcContract如何使用 OpenFeign SpringMvcContract 忽略未注释的方法
【发布时间】:2020-07-26 09:50:00
【问题描述】:

我正在使用 swagger-codegen 为我的 Feign 客户端生成界面。

然而,swagger-codegen 会生成这些方法:

Optional<ObjectMapper> getObjectMapper();

Optional<HttpServletRequest> getRequest();

当我运行我的应用程序时,我收到了这个异常:

FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Method getRequest not annotated with HTTP method type (ex. GET, POST)

我想在我的 FeignConfig 中添加一些东西,告诉我忽略我的界面中的 getObjectMapper()、getRequest()!

这可能吗?

【问题讨论】:

  • 如果我可以对我的 SpringMvcContract 说忽略某些方法,它将解决我的问题 - 我想!
  • 您找到解决方案了吗?我面临同样的问题。我已经尝试了很多自动配置的东西。我不应该在承载 feign 客户端的控制器中重新创建 feign 客户端以进行后续调用。可以这么说,它应该是即插即用的,但 swagger 不断生成带有空 getObjectMapper 和 getRequest 方法的 feign 客户端 api。你找到解决办法了吗?
  • 我的解决方案只是用我想要的方法编写另一个接口......
  • 那么你不是用招摇的方式生成openfeign客户端吗?您手动创建它们。是这样吗?
  • 对于这个特定的客户没有,不幸的是我只是编写了自己的界面!就因为上面提到的问题!

标签: spring-boot openfeign


【解决方案1】:

为了解决这个问题,我只是为 getObjectMapper() 和 getRequest() 添加了默认值。

@Override 
default Optional<ObjectMapper> getObjectMapper() {
    return Optional.empty();
}

@Override 
default Optional<HttpServletRequest> getRequest() {
    return Optional.empty();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2015-10-19
    • 2014-11-20
    • 2015-05-31
    • 2019-03-14
    相关资源
    最近更新 更多