今天准备使用gitlab4j-api,查询出现报错:
Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: javax.ws.rs.core.MultivaluedMap.addAll(Ljava/lang/Object;[Ljava/lang/Object;)V
意思是MultivaluedMap不存在addAll方法,然后我就去看了MultivaluedMap构成,发现有两个版本的MultivaluedMap
点进去分别查看,一个有addAll,一个没有addAll
此处猜测肯定是别的地方也引入了MultivaluedMap包,导致依赖冲突了。
查看一下gitlab4j-api的子依赖,果然jersey-client被覆盖了
于是准备看一下是哪个地方也引用了jersey-client。
使用:mvn dependency:tree > {输出的txt路径}
可以把所有依赖包的树状结构打印到一个文件里,然后在这个文件里搜索jersey-client这个包,发现在
spring-cloud-starter-alibaba-nacos-discovery依赖中同样也引用了jersey-client。
解决:
在nacos-discovery中把这个依赖给去掉
<!-- nacos服务发现与注册中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<exclusions>
<exclusion>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
</exclusion>
</exclusions>
</dependency>
然后就不报错啦~
参考:https://blog.csdn.net/qq_32432081/article/details/102173382