Spring 尤里卡和泽西2.x
我正在使用Spring Boot并寻找discovery服务器。我看到“SpringCloudStarter netflix eureka服务器”依赖于Jersey 1.x,这在我的环境中是不可用的。有几个帖子在讨论如何添加与Jersey 2.x的兼容性,还有一些帖子在讨论如何一起删除Jersey 但是,我没有看到任何与这些选项以及如何使用它们相关的文档/代码的链接。有人能告诉我这里有哪些选择吗 以下是迄今为止我收集到的关于此的链接:Spring 尤里卡和泽西2.x,spring,spring-boot,netflix-eureka,Spring,Spring Boot,Netflix Eureka,我正在使用Spring Boot并寻找discovery服务器。我看到“SpringCloudStarter netflix eureka服务器”依赖于Jersey 1.x,这在我的环境中是不可用的。有几个帖子在讨论如何添加与Jersey 2.x的兼容性,还有一些帖子在讨论如何一起删除Jersey 但是,我没有看到任何与这些选项以及如何使用它们相关的文档/代码的链接。有人能告诉我这里有哪些选择吗 以下是迄今为止我收集到的关于此的链接: Spring Boot Jersey starter引入了
Spring Boot Jersey starter引入了Jersey 2.x,而Spring Cloud Eureka starter引入了Eureka客户端依赖项,该客户端依赖项过渡地包括Jersey 1.x 基本上,在Eureka客户端升级到使用Jersey 2.x之前,Spring Boot Jersey starter和Spring Cloud Eureka starter将无法使用 很可能您遇到了类似
java.lang.NoSuchMethodError:javax.ws.rs.core.Application.getProperties()Ljava/util/Map的错误代码>
你的选择是:
- 如果您想继续使用JAX-RS impl-Spring引导CXF启动器--
- Spring Boot+手动配置Jersey 1.x或Spring MVC Rest
--
下面的依赖关系对我来说很有用。看到我的pom了吗
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
</parent>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.0.0.RELEASE</version>
<exclusions>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
org.springframework.boot
spring启动程序父级
2.0.3.1发布
org.springframework.cloud
spring cloud starter netflix eureka客户端
2.0.0.1版本
javax.ws.rs
jsr311 api
org.springframework.boot
春靴起跑服
感谢您的回复。不幸的是,Jersey 1.x在允许我们运行应用程序的应用程序容器中不受支持。因此,排除了选项2,我们也不使用JAX-RS/Jersey规范/实现。我正在为discovery server寻找现成的解决方案,但根据您的评论,构建一个解决方案是唯一的选择吗?请查看Spring Cloud Consul
-。它可以用于服务发现和分布式配置