springboot项目在服务器上启动时报DerInputStream.getLength(): lengthTag=109, too big.[已解决]

启动时异常截图如下所示:
请添加图片描述

记录一下解决过程

背景介绍

1、项目情况
本项目是采用springboot+maven构建的项目(打jar包),另外项目的证书是从项目外部读取的,并不是读取打包后的jar包种的证书信息
2、经过百度搜索后,给出的答案大部分是因为打包时对证书信息进行了编译,但是本项目是读取的外部证书所以不一致,于是自己开始不在按照这个错误进行查询,而是按照抛出异常的地方代码进行问题的排查,最终将问题解决。

解决办法

1、更换okhttp版本

<dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.3.1</version>
 </dependency>
更换成
<dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>3.14.0</version>
  </dependency>

2、将okhttp更换成3.14.0版本后对现有代码进行兼容版本。修改如下代码:

 public static X509TrustManager getX509TrustManager() {
      X509TrustManager trustManager = null;
      try {
          TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
          trustManagerFactory.init((KeyStore) null);
          TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
          if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {
              throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers));
          }
          trustManager = (X509TrustManager) trustManagers[0];
      } catch (Exception e) {
          e.printStackTrace();
      }

      return trustManager;
  }
  
this.httpClient = new OkHttpClient
              .Builder()
              .hostnameVerifier((s, session) -> true)
              .sslSocketFactory(createSSLContext().getSocketFactory(),getX509TrustManager())
              .build();

做完版本替换后,放到服务器后发现异常信息发生了改变,变成了如下异常信息:
请添加图片描述
又经过了多次尝试,最终发现是服务器上JDK版本太低导致无法兼容,后面将jdk版本升级到jdk1.8.321版本,问题得到了解决。

本人第一次写文章,如果有同学遇到相同的问题,有幸看到本篇文章,有看不懂的地方欢迎私信联系我。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值