m0_69902218 2022-09-29 10:05 采纳率: 0%
浏览 62

腾讯云环境下Feign调用异常(okhttp)

问题描述

在腾讯云环境中,代码存在feign调用,不用默认的client要启用okHttpClient,支持okhttp请求,以实现请求支持连接池和请求压缩,来提升请求和响应速度,但是在导入相关的依赖开启okhttp配置后,测试返现feign调用异常,java.lang.NoClassDefFoundError: feign/Request$HttpMethod,我又把okhttp的配置关了,启用默认的client,调用成功。由此可见,是ohhttp的问题,请各位一起出谋划策。

导入的依赖如下,已排除依赖冲突
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-openfeign</artifactId>
      </dependency>
      
      
      <dependency>
          <groupId>io.github.openfeign</groupId>
          <artifactId>feign-okhttp</artifactId>
          <version>11.8</version>
          <exclusions>
              <exclusion>
                  <artifactId>feign-core</artifactId>
                  <groupId>io.github.openfeign</groupId>
              </exclusion>
              <exclusion>
                  <artifactId>kotlin-stdlib</artifactId>
                  <groupId>org.jetbrains.kotlin</groupId>
              </exclusion>
              <exclusion>
                  <artifactId>kotlin-stdlib-common</artifactId>
                  <groupId>org.jetbrains.kotlin</groupId>
              </exclusion>
          </exclusions>
      </dependency>

      <dependency>
          <groupId>org.jetbrains.kotlin</groupId>
          <artifactId>kotlin-stdlib</artifactId>
          <version>1.3.70</version>
          <exclusions>
              <exclusion>
                  <artifactId>annotations</artifactId>
                  <groupId>org.jetbrains</groupId>
              </exclusion>
          </exclusions>
      </dependency>
okhttp的配置
feign:
  client:
    config:
      default:
        connectTimeout: 20000
        readTimeout: 30000
  httpclient:
    enabled: false
  okhttp:
    enabled: true
  compression:
    request:
      enabled: true #开启请求压缩
      mime-types: text/html,application/xml,application/json #设置压缩的数据类型
      min-request-size: 2048 #设置触发压缩的大小下限
    response:
        enabled: true #开启响应压缩
运行结果及报错内容 ,这个错误在服务启动后的每一次feign(okhttp请求)都会报错

img

运行结果及报错内容 ,这个错误只在服务启动后的第一次feign调用(okhttp请求)会报这个错

img

可以看到确实是okhttpclient,并支持连接池

img

到这里再往下执行就会报错上述错误了

img

  • 写回答

2条回答 默认 最新

  • 代码羊羊 2022-09-29 10:21
    关注

    不需要排除依赖,只需要添加配置feign.okhttp.enabled=true

    参考,亲测正确https://blog.csdn.net/qq_43437874/article/details/122169675

    评论

报告相同问题?

问题事件

  • 创建了问题 9月29日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题