问题复现

SpringBoot 版本:2.3.2.RELEASE
ElasticSearch 版本:7.16.2

<!-- 引入es依赖 -->
<dependency>
    <groupId>co.elastic.clients</groupId>
    <artifactId>elasticsearch-java</artifactId>
    <version>7.16.2</version>
</dependency>

启动项目后,出现异常

[co.elastic.clients.elasticsearch.ElasticsearchClient]: Factory method 'elasticsearchClient' threw exception; nested exception is java.lang.NoClassDefFoundError: jakarta/json/spi/JsonProvider

原因

根据pom文件,可以得知springboot使用的是 1.1.6 版本,由于版本问题,导致找不到这个类出现异常
版本号管理
只需要替换成 2.0.1 版本。

解决

多模块

如果是多模块,在父模块设置版本号即可

<!-- 父模块 -->
<properties>
    <jakarta-json.version>2.0.1</jakarta-json.version>
    <elasticsearch.version>7.16.2</elasticsearch.version>
</properties>

<!-- 依赖声明 -->
<dependencyManagement>
	<dependencies>
		<!-- 引入es依赖 -->
		<dependency>
			<groupId>co.elastic.clients</groupId>
			<artifactId>elasticsearch-java</artifactId>
			<version>${elasticsearch.version}</version>
		</dependency>
		<dependency>
			<groupId>jakarta.json</groupId>
			<artifactId>jakarta.json-api</artifactId>
			<version>${jakarta-json.version}</version>
		</dependency>
	</dependencies>
</dependencyManagement>

单模块

<properties>
    <jakarta-json.version>2.0.1</jakarta-json.version>
    <elasticsearch.version>7.16.2</elasticsearch.version>
</properties>

<dependencies>
	<!-- 引入es依赖 -->
	<dependency>
		<groupId>co.elastic.clients</groupId>
		<artifactId>elasticsearch-java</artifactId>
		<version>${elasticsearch.version}</version>
	</dependency>

	<dependency>
		<groupId>jakarta.json</groupId>
		<artifactId>jakarta.json-api</artifactId>
		<version>${jakarta-json.version}</version>
	</dependency>
</dependencies>

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐