SpringBoot整合ElasticSearch的elasticsearch-java出现jakarta.json.spi.JsonProvider报错问题

一、原因

报错内容如下

java 复制代码
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'esClient' defined in class path resource
[com/elasticsearch/config/ElasticSearchConfig.class]: Bean instantiation via
factory method failed; nested exception is
org.springframework.beans.BeanInstantiationException: Failed to instantiate
[co.elastic.clients.elasticsearch.ElasticsearchClient]: Factory method
'esClient' threw exception; nested exception is
java.lang.NoClassDefFoundError: jakarta/json/spi/JsonProvider

从报错信息来看,问题可能出在与jakarta/json相关的依赖上。Elasticsearch 8.x 使用了jakarta.json的 API(在 Java 9 及以上版本中,javax.json已被重命名为jakarta.json

二、解决方法

项目使用的是 Java 8,可能会遇到这个问题。一种可能的解决方法是添加对jakarta.json的依赖。例如,如果你使用 Maven 来管理项目依赖,可以在pom.xml文件中添加以下依赖:

java 复制代码
<dependency>
    <groupId>jakarta.json</groupId>
    <artifactId>jakarta.json-api</artifactId>
    <version>2.1.1</version>
</dependency>
相关推荐
一勺菠萝丶几秒前
Jenkins 中如何给角色分配多个不同名称的项目(Role 权限实战)
java·运维·jenkins
真上帝的左手几秒前
15. 实时数据-SpringBoot集成WebSocket
spring boot·后端·websocket
han_hanker2 分钟前
springboot 封装的比较好的 统一的返回类型 工具类
java·spring boot·后端
韩立学长2 分钟前
基于Springboot流浪动物救助系统cqy142wz(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
怪只怪满眼尽是人间烟火3 分钟前
springboot数据上链FISCO BCOS
java·spring boot·后端
没什么本事5 分钟前
Springboot CGLIB 代理对象问题
java·spring boot·spring
好好沉淀5 分钟前
开发过程中动态 SQL 中where 1=1的作用是什么
java·服务器·开发语言·数据库·sql
Javatutouhouduan5 分钟前
SpringBoot整合reids之JSON序列化文件夹操作
java·spring boot·spring·bootstrap·html·后端开发·java架构师
曲莫终6 分钟前
springboot集成h2内存数据库运行测试用例
数据库·spring boot·测试用例
她说..6 分钟前
Spring AOP场景5——异常处理(附带源码)
java·数据库·后端·spring·springboot·spring aop