大家好,又见面了,我是你们的朋友全栈君。
问题描述: tomcat部署的war包,启动tomcat的时候正常,但是访问项目的时候一直报500,查看tomcat的报错日志如下: java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder;
处理方法:查了一下和依赖中的一些 jersey 相关的包冲突导致的,可以看看pom.xml文件中的两个依赖,
代码语言:javascript复制<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.26</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-guice</artifactId>
<version>1.19.4</version>
</dependency>
jersey-server 内部依赖了 javax.ws.rs-api包,而jersey-guice 内部依赖了 jsr311 对应包,这两个包都是实现UriBuilder,导致冲突。所以出现了 javax.ws.rs.core.UriBuilder 的错误。 处理:将 jersey-server包中的内部依赖javax.ws.rs-api排除,pom.xml改为:
代码语言:javascript复制<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.26</version>
<exclusions>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-guice</artifactId>
<version>1.19.4</version>
</dependency>
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137100.html原文链接:https://javaforall.cn