需添加什么依赖解决java.lang.NoClassDefFoundError: org/glassfish/jersey/internal/guava/Sets问题?
问题解决方案
错误原因
java.lang.NoClassDefFoundError: org/glassfish/jersey/internal/guava/Sets 报错的核心原因是缺失Jersey重新打包的Guava依赖,该类是Jersey官方二次封装的Guava工具类,不属于原生Guava依赖,直接引入原生Guava无法解决问题。
对应Maven依赖
根据你使用的Jersey版本选择匹配的依赖即可:
- 若使用的Jersey版本为2.0 ~ 2.25.x,添加独立的jersey-guava依赖:
<dependency> <groupId>org.glassfish.jersey.bundles.repackaged</groupId> <artifactId>jersey-guava</artifactId> <version>2.25.1</version> </dependency>
- 若使用的Jersey版本为2.26 ~ 2.39.x,该类已整合到jersey-common包中,添加对应版本的jersey-common即可:
<dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-common</artifactId> <version>2.39</version> </dependency>
- 若使用Jersey 3.x版本(适配Jakarta EE规范),添加对应版本的jersey-common即可:
<dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-common</artifactId> <version>3.1.3</version> </dependency>
注意事项
所有Jersey相关组件的版本必须保持完全一致,避免出现其他类缺失或兼容冲突问题。
内容的提问来源于stack exchange,提问作者Dikshit Batra
相关产品推荐
相关产品推荐

