Spring Cloud(Edgware.RELEASE)采用Eureka做为服务管理,而RESTFUL采用Jersey时容易出现此错误,原因是因为spring-cloud-starter-eureka目前采用的Jersey 1.1,而spring-boot-starter-jersey用的是Jersey 2.x版本,Jersey 1.x与Jersey 2.x在注入方式等上有所不同。
考虑到Spring boot也是采用依赖管理跟自动配置的,只不过依赖的管理由Spring boot自动处理了,而且spring-boot-starter-jersey用的是Jersey 2.x版本,所以采用如下方式将spring-cloud-starter-eureka的jsr311-api不引入依赖,而采用spring boot引入的Jersey 2.x版本,至此标题错误得以解决:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<exclusions>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</exclusion>
</exclusions>
</dependency>