记录一次项目上线后报错java.lang.UnsupportedClassVersionError: org/apache/tika/mime/MimeTypeException

问题描述

项目此次版本改动内容并不复杂,并上线部署正常,但是调用某接口时报错,报错内容意思是:org/apache/tika/mime/由java11编译,但是运行在1.8的版本上。

报错内容

nested exception is java.lang.UnsupportedClassVersionError: org/apache/tika/mime/MimeTypeException has been 
compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime 
only recognizes class file versions up to 52.0

原因分析:

发现报错的这个类 org/apache/tika/mime/MimeTypeException在合作方SDK中引用到,正好是请求合作方接口时报的错,那么问题基本可以定位到是合作方SDK引用到了使用java11编译导致的报错,接下来进行排查

  • 找到MimeTypeException异常类,发现位于java11中
    在这里插入图片描述
  • 查看引用,发现是合作方sdk中的一个工具类引用到了
    public static String getFileExt(InputStream stream) {
        String fileExt = ".bin";
        try {
            String mimeType = getMimeType(stream);
            fileExt = TikaConfig.getDefaultConfig().getMimeRepository().getRegisteredMimeType(mimeType).getExtension();
        } catch (MimeTypeException e) {
            e.printStackTrace();
        }
        return fileExt;
    }

那可就确定是合作方SDK的问题了,但是,这块代码没有改过,原先就在这里,为什么会在此次部署后请求报错

  • 找到MimeTypeException类所在的包,发现依赖的是tika-core 3.0.0,并可以看到由java11编译
    在这里插入图片描述
    在这里插入图片描述
  • 那么就是合作方sdk中更新了org.apache.tika导致的,找到合作方的sdk查看依赖吗,发现是这么定义的
	<dependency>
		<groupId>org.apache.tika</groupId>
		<artifactId>tika-core</artifactId>
		<version>${tika-core.version}</version>
	</dependency>
	<properties>
		<tika-core.version>[1.22,)</tika-core.version>
	</properties>

  • 不知道为什么突然就被引用到了3.0,手动改为1.22问题就解决了

解决方案:

在pom文件中忽略指定tika-core,重新引入1.22问题解决

这里的的合作方信息我用xxx代替了

      <dependency>
            <groupId>xxxx</groupId>
            <artifactId>xxxx-sdk</artifactId>
            <version>xxxx</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.tika</groupId>
                    <artifactId>tika-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-core</artifactId>
            <version>1.22</version>
        </dependency>
  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值